方法一:在得到ax、dx结果后,紧接着加一条“int 3”中断指令,在debug中调试运行程序,
程序暂停时的ax、dx寄存器中的值即为所求。
方法二:编一个显示16位二进制数的显示子程序,然后分别调用其显示ax、dx即可。
方法三:如果dx是32位数的高16位,ax是32位数的低16位,那得编写一个32位二进制数的
显示子程序,调用其显示即可。
以下是后两者的实现方法:
;********************************************************
DISPDXAX PROC NEAR
PUSH AX
PUSH BX
PUSH CX
PUSH DX
PUSH SI
PUSH DI
PUSH BP
push ds
push es
PUSHF
;==============
push cs
pop ds
push cs
pop es
MOV WORD PTR [Y],AX
MOV WORD PTR [Y+2],DX
; 以下将 Y (16进制)转为10进制串并输出
MOV AX,WORD PTR [Y]
MOV DX,WORD PTR [Y+2]
MOV BX,WORD PTR [Z]
MOV CX,WORD PTR [Z+2]
MOV WORD PTR N,0
MM0: INC WORD PTR N
SUB AX,BX
SBB DX,CX
JNC MM0
DEC WORD PTR N
ADD AX,BX
ADC DX,CX
MOV WORD PTR[Y],AX
MOV WORD PTR[Y+2],DX
;==============
MM1: LEA DI,CC
ADD DI,9
M2:
MOV AX,WORD PTR [Y]
MOV DX,WORD PTR [Y+2]
MOV BX,10000
DIV BX
PUSH AX
PUSH DX
; ============
; 以下转换10进制的低4位
POP DX
MOV CX,4
MOV AX,DX
M3: MOV DX,0
MOV BX,10
DIV BX
ADD DL,30H
MOV [DI],DL
DEC DI
LOOP M3
; ===========
; 以下转换10进制的高万位
POP AX
MOV CX,1
M4: MOV DX,0
MOV BX,10
DIV BX
ADD DL,30H
MOV [DI],DL
DEC DI
LOOP M4
;=============
MOV AX,WORD PTR N
MOV CX,5
M5: MOV DX,0
MOV BX,10
DIV BX
ADD DL,30H
MOV [DI],DL
DEC DI
LOOP M5
; ============
; 输出换行回车
LEA DX,LFCR
MOV AH,9
INT 21H
; ============
; 输出两数的和的10进制串
LEA DX,CC
MOV AH,9
INT 21H
;=============
POPF
pop es
pop ds
POP BP
POP DI
POP SI
POP DX
POP CX
POP BX
POP AX
RET
;------------
Y DD ?
CC DB 10 DUP(' '),10,13,'$'
LFCR DB 10,13,'$'
Z DD 100000
N DW 0
DISPDXAX ENDP
;***********************************************************
; 将要显示的无符号数置于 ax 中
DISPAX PROC NEAR
PUSH AX
PUSH BX
PUSH CX
PUSH DX
PUSH SI
PUSH DI
PUSH BP
push ds
push es
PUSHF
;================
PUSH CS
POP DS
push cs
pop es
MOV BYTE PTR NZ,0
PUSH AX
LEA SI,DIVARR
MOV CX,5
@1:
POP AX
MOV DX,0
MOV BX,[SI]
DIV BX
PUSH DX
CMP AL,0
JNE @2
CMP BYTE PTR NZ,1
JE @2
CMP CX,1
JE @2
MOV DL,20H
JMP @3
@2:
ADD AL,30H
MOV DL,AL
MOV BYTE PTR NZ,1
@3:
MOV AH,2
INT 21H
INC SI
INC SI
LOOP @1
POP DX
;=============
MOV DL,32
MOV AH,2
INT 21H
POPF
pop es
pop ds
POP BP
POP DI
POP SI
POP DX
POP CX
POP BX
POP AX
RET
DIVARR DW 10000,1000,100,10,1
NZ DB 0
DISPAX ENDP
;*******************************************************
温馨提示:答案为网友推荐,仅供参考