汇编语言实验2数据转换实验.docVIP

  • 22
  • 0
  • 约6.5千字
  • 约 7页
  • 2016-10-08 发布于重庆
  • 举报
汇编语言实验2数据转换实验

程序如下所示: DATA SEGMENT BUF DB 5 DUP(?) ;预留5单元空间 D0 DW 2A5H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV DI,OFFSET D0 ;将DI指向BUF的下一单元 MOV AX,D0 ;取要用来变十进制数的数到AX MOV BX,10 ;准备除以10 MOV CX,0 ;准备统计余数的个数 CHANGE10: DEC DI ;准备存放余数,往前倒存 INC CX MOV DX,0 ;将除数的高16位(在DX中)清0,DX也将用来存放余数 DIV BX ;DX,AX除以BX (BX=10) ADD DL,30H ;余数变为ASCII码值 MOV BYTE PTR[DI],DL ;存储十进制数 CMP AX,0 ;是否为0? JNZ CHANGE10 ;不为0转CHANGE10 CHANGE11: MOV DL,BYTE PTR[DI] ;取出存放在BUF中的十进制数到DL供显示 MOV AH,2 ;显示1个字符 INT 21H INC DI LOOP CHANGE11 MOV AH,4CH ;程序结束并返回DOS INT 21H CODE ENDS END START (1)请改变第三行的3A5H改变为4A3FH、0ABH、0A37BH后分别说明运行结果,并做解释。 不做修改 改3A5H为4A3FH 改3A5H为0ABH 改3A5H为0A37BH (2)分析其中INC与DEC语句的作用是什么,用”;”号屏蔽这二句后运行结果又是什么?请解释。 (3)将MOV BX,10 ;准备除以10 中的10改为8,结果如何?意义是什么? 4A3FH 0A37BH (4)如果改为16,结果如何,试分析为什么是这样的结果? 0A37BH 0ABH 4A3FH 2.ASCII码表示的十进制数转换为二进制数并显示 将SI指向的缓冲区BUF中保存的五位ASCII码十进制数(0-65535)转换成对应的二进制数并存放在DX中,再以二进制形式显示。 DATA SEGMENT BUF DB 25092 C DB B,0DH,0AH,$ DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV SI,OFFSET BUF ;将BUF的地址放到SI中 MOV DX,0 ;清DX为0; MOV CX,5 ;置循环次数为5 MOV BX,10 GET_ASC: MOV AL,[SI] ;取出一个字符 CMP AL,0 ;必须保证5个数都是十进制数(0-9) JB EXIT CMP AL,9 JA EXIT

文档评论(0)

1亿VIP精品文档

相关文档