程序执行结束后,以变量BUF为首地址的连续5个字节单元的内容是 【8】 (以十六进制的形式表示)。
参考答案:35H,34H,20H,20H,20H。
解析:这个程序的功能:
将AX寄存器中的十六进制数(36H)转换为十进制数的ASCII码,最多可处理5位数的十进制数。结果存入以变量BUF为首地址的连续的5个字节单元中。
主要程序段,我们将它进行详解:
LP1: MOVDX,0
DIV BX ;DX寄存器存放余数,即AX中相应十进制数
;的个位AX寄存器存放商
PUSH DX
INC CX ;CX寄存器存放已处理的位数
CMPAX,0 ;判断AX中的十六进制数是否已处理完
JNE LP1 ;未处理完继续处理,依次求出AX中相应
;十进制数的十位、百位、千位和万位
MOV BX,5 ;已经处理完,准备在屏幕上显示结果
SUB BX,CX
LP2: POP DX
ADD DL,30H ;将十进制数转换为对应的ASCII码值
MOV [D1],DL
INC DI
LOOP LP2
CMP BX,0
JE EXIT
MOV CX,BX
LP3: MOVBYTE PTR[DI],20H ;十进制数不足5位的,在十进制数的
;后面以空格补足5位
INC DI
LOOP LP3
EXIT: RET
第一次执行PUSH DX指令后,DX寄存器存放AX(36H)中相应十进制数的个位,即4。
程序执行结束后,以变量BUF为首地址的连续5个字节单元的内容是35H,34H,20H, 20H,20H。