- 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
您可能关注的文档
最近下载
- 2026年详版个人信用报告征信报告最新Word可编辑模版样板doc文件.docx
- 2026年春接力版(新教材)小学音乐一年级下册(全册)教学设计(附目录P160).docx
- 行者讲课脉法下篇.doc VIP
- 铁塔电池通讯协议.docx VIP
- 复旦大学课程汉语言文学原典精读李杜精读.pdf VIP
- 电商数据分析(微课版)课件全套 第1--10章 电商数据分析概述---数据分析报告与看板制作.pptx
- 异常子宫出血的护理查房.pptx
- 2025年中医执业医师个人工作计划范文.docx VIP
- 2024《中班幼儿饮食行为现状调查—以S幼儿园为例》12000字.docx VIP
- 2025年美容美发十年行业数据洞察报告.docx
原创力文档

文档评论(0)