JNE NINE INC S10
JMP SHORT CHANGE-ADDR NINE: INC S9
JMP SHORT CHANGE-ADDR EIGHT: INC S8
JMP SHORT CHANGE-ADDR SEVEN: INC S7
JMP SHORT CHANGE-ADDR SIX: INC S6
JMP SHORT CHANGE-ADDR FIVE: INC S5 CHANGE-ADDR: ADD BX, 2 LOOP COMPARE
MOV CX,6 ;在源程序中添加的输出程序(开始) MOV SI,OFFSET S5 AGAIN: MOV DX,[SI] AD DX,30H MOV AH,02H INT 21H MOV DL,20H MOV AH,02H INT 21H ADD SI,2
LOOP AGAIN :(结束)
RET ; RETURN TO DOS
MAIN ENDP ; END OF MAIN PART OF PROGRAM ; ------------------------------ PROGNAM ENDS
;*************************** END START ; END ASSEMBLY 输出结果:1 2 1 4 1 1
五、实验要求
1.读懂所给的程序。
2.编写将存放于S5、S6、S7、S8、S9及S10单元中的数据在屏幕上显示出来的部分程序。
实验五
.model small .stack .data
buf db 20,?,20 dup(?) num1 db ? num2 db ?
11
msg db \msg1 db \msg2 db \.code .startup mov num1,0 mov num2,0
mov dx,offset msg mov ah,9 int 21h lea dx,buf mov ah,0ah int 21h
mov bl,buf+1 cmp bl,0 jz exit
lea si,buf+2 mov cl,bl
;比较
again: cmp byte ptr[si],'A' jb next
cmp byte ptr[si],'z' ja next
cmp byte ptr[si],'Z' jbe number1
cmp byte ptr[si],'a' jae number2 number1: inc num1 jmp next
number2: inc num2 jmp next next: inc si loop again
mov bh,0 add bx,dx
mov byte ptr[bx+2],'$' mov buf,13 mov buf+1,10 mov ah,9 int 21h
mov dl,0dh mov ah,2 int 21h mov dl,0ah mov ah,2 int 21h
mov dx,offset msg1 mov ah,9 int 21h mov dl,num1 add dl,30h mov ah,2 int 21h
12
mov dl,0dh mov ah,2 int 21h mov dl,0ah mov ah,2 int 21h
mov dx,offset msg2 mov ah,9 int 21h mov dl,num2 add dl,30h mov ah,2 int 21h
exit: mov ah,4ch int 21h
.exit end
13