若在BCD单元中保存有一字节的压缩BCD码,使用命令CALL PROCI调用子程序PROCI,将此压缩BCD码转换为两个相应的ASCII码,并把高位存入ASCI单元低位存入ASCZ单元,写出PROCI
【正确答案】:PROCI PROC
PUSH AX
PUSH CX
MOV AL,BCD
AND AL,0FH
ADD AL,30H
MOV ASCZ,AL
MOV AL,BCD
MOV CL,4
SHR AL,CL
ADD AL,30H
MOV ASCI,AL
POP CX
POP AX
RET
PROCI ENDP
【题目解析】:先把AX和CX入栈,保护现场。把BCD中的内容存入AL,利用AND AL,0FH屏蔽AL的高4位,加上30H就转换为对应的ASCII码。把此时的AL(低位)存入ASCZ单元,再把BCD中的内容存入AL,把4存入CL,把AL逻辑右移4位,最高位补0,此时AL再加上30H就转换为对应的ASCII码,把此时的AL(高位)存入ASCI单元。再把CX和AX出栈,恢复现场。注意:栈中元素是后进先出,因此CX是后进入的,那么就要先弹出来。
若在BCD单元中保存有一字节的压缩BCD码,使用命令CALL PROCI调用子程序PROCI,将此压缩BCD码转换为两个相应的A
- 2024-09-08 13:24:02
- 汇编语言程序设计(02321)