;接下来的程序是将最大值DH在屏幕上显示输出 MOV BX,02H NEXT2:
MOV CL,4
ROL DH,CL ;将DH循环右移四位 MOV AL,DH
AND AL,0FH ;将AL高位清零,一位一位进行ASCII码转换 CMP AL,09H ;与09H比较大小
JBE NEXT3 ;若小于,跳转至NEXT3,证明数值在0-9之间
ADD AL,07H;若大于,则证明为字母,因为字母与数字的ASCII码相差7,所以要加上7 NEXT3:
ADD AL,30H ;因为转换为ASCII码要加30H MOV DL,AL
MOV AH,2 ;DOS中断显示 INT 21H DEC BX JNZ NEXT2 MOV DL,'H' MOV AH,2 INT 21H CODE ENDS END START 实验结果
第 6 页
第 7 页
2、实验代码
DATA SEGMENT BNUM DW 0500H
DNUM DB 4 DUP()
MES DB 'THE BCD OF '500H' IS: ','$' DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START:
MOV AX,DATA MOV DS,AX
MOV DX,OFFSET MES MOV AH,09H INT 21H
MOV AX,BNUM LEA BX,DNUM MOV DL,0 ;计算1000的个数 COUNT1:
SUB AX,03E8H JC NEXT1 INC DL JMP COUNT1 NEXT1:
ADD AX,03E8H
;将字符串偏移量写入DX ;将0500H存入AX中
;取DNUM的偏移量 ;AX-1000
;不够减,即若CF=1,有借位,转NEXT1 ;DL+1
;跳转AGAIN1 ;AX+1000
第 8 页
MOV [BX],DL ;将DL(即千位数)存入DNUM中 INC BX ;BX+1 MOV DL,0 ;DL清零 ;计算100个数 COUNT2:
SUB JC INC JMP NEXT2:
ADD MOV INC MOV ;计算10个数 COUNT3:
SUB JC INC JMP NEXT3:
ADD MOV INC MOV
AX,0064H NEXT2 DL COUNT2 AX,0064H
[BX],DL BX DL,0 AX,000AH NEXT3 DL COUNT3 AX,000AH
[BX],DL BX [BX],AL ;AX-100 ;将DL(即百位数)存入DNUM中 ;AX-10 ;将DL(十位数)存入DNUM中 ;计算个位数
第 9 页
;接下来的程序是将数值转化为ASCII并在屏幕上显示 MOV CX,4
LEA SI,DNUM ;取DNUM的地址偏移量 NEXT4:
MOV AL,[SI] ;将DNUM中所存的各个数值转换为ASCII码; ;在屏幕上输出显示
CMP AL,09H JBE NEXT5
ADD AL,07H NEXT5:
ADD AL,30H MOV DL,AL MOV AH,2 INT 21H INC SI DEC CX JNZ NEXT4 CODE ENDS END START 实验结果
第 10 页
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库实验一 汇编语言程序设计(2)在线全文阅读。
相关推荐: