;MIMA
;==================================
DATA SEGMENT
BUF1 DB 'HAPPY!'
BUF3 DB 10, 13, 'PLEASE INPUT PASSWORD : $'
BUF4 DB 10, 13, 'ERROR ! $'
BUF5 DB 6 DUP(?)
BUF6 DB 10, 13, 'WELLCOM ! $'
COUNT DB 3
DATA ENDS
;----------------------------------
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, ES:DATA
BEG:
MOV AX, DATA
MOV DS, AX
MOV ES, AX
IIII:
MOV AH, 09H
MOV DX, OFFSET BUF3
INT 21H
MOV BX, OFFSET BUF5
MOV CX, 06H
LAST:
MOV AH, 07H
INT 21H
MOV [BX], AL
MOV AH, 02H
MOV DL, '*'
INT 21H
INC BX
LOOP LAST
;--------------------------
MOV DI, OFFSET BUF5
MOV SI, OFFSET BUF1
CLD
MOV CX, 6
REPE CMPSB
JZ GOOD
MOV AH, 09H
MOV DX, OFFSET BUF4
INT 21H
DEC COUNT
JZ EXIT
JMP IIII
GOOD:
MOV AH, 09H
MOV DX, OFFSET BUF6
INT 21H
EXIT:
MOV AH, 4CH
INT 21H
CODE ENDS
END BEG
;==================================
输入字符串,然后进行比较,如果是'HAPPY!',就输出 WELLCOM !。
数据段
DB'输入字符串:$'
BUF DB 100
LEN DB?
STR DB 100 DUP(?)
ZS DB 0DH,0AH
WE DB 100 DUP('$')
数据结束
代码段 BR /> MAIN PROC FAR
假设CS:CODE,DS:数据
START:PUSH DS
PUSH AX
MOV AX,DATA
MOV DS,AX
INT 21H
LEA DX,BUF
MOV AH ,0AH
INT 21H
MOV CL,LEN
MOV CH,0
LEA BX,STR
LEA SI,我们
/> CONT:MOV AL,0
MOV AL,[BX]
CMP AL,'“
JB NEXT
CMP AL,'Z'
JA NEXT
SUB AL,32
MOV [SI],AL
JMP NEXT2
NEXT:MOV [SI],AL
JMP NEXT2
NEXT2:INC BX
INC SI
LOOP CONT
MOV DX,0
LEA DX,ZS
MOV AH,9H
INT 21H
RET
的代码最终
END START
而且,像我这样的,什么人不明白的汇编。
装配的根据的书籍,我可以写一下。但它是太麻烦了。
但是给你一个提示:测试命令来测试。
要测试,第一个是1,测试啊,80H;二进制10000000
测试其中一个,那个位置
测定的三个测试啊,20H;二进制00100000
测量5测试啊,08H,二进制的“00001000”
如果测试结果是0,则一个相应的$ 0,如果测试结果不为0,则相位与1进行比较。
判断1:测试啊,80H,嗯,当然有啊注册
的JZ IsZero的测试位0跳转到iszero标记其余的写作,我打了这么许多字符! !
同济的?
ASSUME CS:CODE,DS:DATA,SS:STACK
DATA SEGMENT
BUF1DB 81,?,80 DUP (0)
BUF2 DB 81,?,80 DUP (0)
MSG1 DB 10,13,'PLEASE INPUT A STRING ',10,13 ,'$'
MSG2 DB 10,13,'PLEASE INPUT ANOTHER STRING ',10,13,'$'
MSG3 DB 10,13,'THE STRING YOU INPUT ' ,'$'
MH DB ' MATCH ' ,10,13,'$'
NH DB ' NOT MATCH',10,13,'$'
DATA ENDS
STACK SEGMENT
DB 128 DUP (0)
TOS DB '$'
STACK ENDS
CODE SEGMENT
START:
MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV SP,OFFSET TOS
MOV DX,OFFSET MSG1
MOV AH,9
INT 21H
LEA DX,BUF1
MOV AH,10
INT 21H
MOV DX,OFFSET MSG2
MOV AH,9
INT 21H
LEA DX,BUF2
MOV AH,10
INT 21H
MOV DX,OFFSET MSG3
MOV AH,9
INT 21H
MOV SI,OFFSET BUF1 + 2
LEA DI,BUF2 + 2
MOV AL,[DI-1]
MOV BL,[SI-1]
CMP AL,BL
JNE NM
MOV CL,[SI-1]
MOV CH,0
CON:
MOV AL,[DI]
MOV BL,[SI]
CMP AL,BL
JNE NM
INC DI
INC SI
LOOP CON
MOV DX,OFFSET MH
JMP EXIT
NM:
MOV DX,OFFSET NH
EXIT:
MOV AH,9
INT 21H
MOV AX,4C00H
INT 21H
CODE ENDS
END START