这段代码没有结果输出是因为没有在程序中加入输出语句。可以在程序末尾加入以下语句来输出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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录