微机原理作业2
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理
57.在自BUFFER单元开始,放有一个数据块,BUFFER和BUFFER+1单元中放的是数据的长度,自BUFFER+2开始存放数据,每一单元放的是两位BCD码,把它们分别转换为ASCII 码,放到自BLOCK开始的存储区中(低四位BCD码转换成的ASCII码放在地址低的单元),而BLOCK和BLOCK+1放转换成的ASCII码的长度。
.MODEL SMALL
.STACK
.DA TA
BUFFER DB 04, 00, 04H, 06H, 03H, 08H
BLOCK DB 10 DUP(0)
.CODE
.STARTUP
MOV CL,[BUFFER]
MOV CH,[BUFFER+1]
MOV DX,CX
ADD DX,DX ;DX为转换后的ASCII码的长度
MOV [BLOCK],DL
MOV [BLOCK+1],DH ;BLOCK和BLOCK+1存放转换成的ASCII码的长度
LEA SI,BUFFER+2
LEA DI,BLOCK+2
MYFCT:
MOV AL,BYTE PTR[SI]
MOV BL,AL
AND AL,0FH ;只有低4位是有效的,高4位清0
ADD AL,30H ;转换成ASCII码
MOV BYTE PTR[DI],AL ;存放转换成的ASCII码
INC DI ;地址加1
MOV AL,BL ;AL←BL
SHR AL,1
SHR AL,1
SHR AL,1
SHR AL,1
ADD AL,30H ;转换成ASCII码
MOV BYTE PTR[DI],AL ;存放转换成的ASCII码
INC SI ;SI加1
INC DI ;DI加1
DEC CX
JNZ MYFCT
.EXIT
END