第一题:
DATA SEGMENT
FRIST DB 'ASDKJFLKSAAA;SDFWEOEWCMVNKFJWOESAASDADSLFJF,$'
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START:
MOV AX,DATA
MOV DS,AX
LEA SI,FRIST
MOV BL,0
NEXT:
MOV AL,[SI]
CMP AL,'$'
JZ EXIT
CMP AL,'A'
JNZ NEXT1
INC BL
NEXT1:
INC SI
JMP NEXT
EXIT:
MOV AH,4CH
INT 21H
CODE ENDS
END START
第二题
2.
DATA SEGMENT
FRIST DB 'ASDKJFLKSAAA;SDFWEOEWCMVNKFJWOESAASDADSLFJF$'
COUNT1 EQU $-FRIST
TWO DB 'ASDKJFLKSAAA;SDFWEODADSLFJF$'
COUNT2 EQU $-TWO
MSG1 DB 'MATCH$'
MSG2 DB 'NOMATCH$'
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,ES:DATA,CS:CODE
START:
MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV CX,COUNT1
CMP CX,COUNT2
JNZ NO
CLD
LEA SI,FRIST
LEA DI,TWO
REPZ CMPSB
JNZ NO
LEA DX,MSG1
JMP DISP
NO:
LEA DX,MSG2
DISP:
MOV AH,9
INT 21H
MOV AH,1
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
lea si,first
mov bx,0
mov cx,99
aa:mov al,[si]
inc si
cmp al,`$`
jz bb
cmp al,`A`
jnz aa
inc bx
loop aa
bb:mov count,bx
jmp input
match db `match,0AH,0DH,`$`
nomtch db `nomatch,0AH,0DH`$`
star1 db `clxjsolc`$`
cn equ $-star1
star2 db `ckuxhsdl`$`
lea si star1
lea di star2
mov cx,cn
cld
repz cmpsb
jz match1
jmp nomatch1
match:mov dx,offset match
mov ah,09h
int 21h
nomatch1:mov dx,offset nomatch
mov ah,09h
int 21h
;cmps指令的操作就是si的内容减去di的,并且inc si , inc di 这些都是自动的
只要你指定了si和di就行了
输出到屏幕很简单的