汇编语言程序示例:计算两个数的绝对值之和
这段代码没有结果输出是因为没有在程序中加入输出语句。可以在程序末尾加入以下语句来输出Z的值:
MOV AX, Z
CALL OUTDEC ;调用输出十进制函数
MOV AH, 4CH
INT 21H
同时需要在程序开头加入以下输出十进制函数的定义:
OUTDEC PROC NEAR
; 将AX中的十进制数转换为字符并输出
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV BX, 10
MOV CX, 0
MOV DX, 0
LP1:
XOR DX, DX
DIV BX
PUSH DX
INC CX
OR AX, AX
JNZ LP1
MOV AH, 2
LP2:
POP DX
ADD DL, '0'
INT 21H
LOOP LP2
POP DX
POP CX
POP BX
POP AX
RET
OUTDEC ENDP
完整代码如下:
DATA SEGMENT
X DW 6
Y DW -9
Z DW 0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
OUTDEC PROC NEAR
; 将AX中的十进制数转换为字符并输出
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV BX, 10
MOV CX, 0
MOV DX, 0
LP1:
XOR DX, DX
DIV BX
PUSH DX
INC CX
OR AX, AX
JNZ LP1
MOV AH, 2
LP2:
POP DX
ADD DL, '0'
INT 21H
LOOP LP2
POP DX
POP CX
POP BX
POP AX
RET
OUTDEC ENDP
START:
MOV AX,DATA
MOV DS,AX
MOV AX,X
CMP AX,0
JGE KAML
NEG AX
KAML:ADD Z,AX
MOV BX,Y
CMP BX,0
JGE KEML
NEG BX
KEML:ADD Z,BX
MOV AX, Z
CALL OUTDEC ;调用输出十进制函数
MOV AH, 4CH
INT 21H
CODE ENDS
END START
原文地址: https://www.cveoy.top/t/topic/nqcj 著作权归作者所有。请勿转载和采集!