用emu8086实现下面程序,为什么运行有错? 程序是实现符号函数

用emu8086实现下面程序,为什么运行有错?
程序是实现符号函数DATA SEGMENT
y1 DB 1
y2 DB 0
y3 DB -1
y DB ?;(此处存放判定结果)
x DB ?;(此处设定要用的x,代换调“?”即可)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV AL,x
SAL AL,1;算术左移指令,左移1位将最高位符号标志位移进符号位cf
JNC S1;CF是否等于1,不等于1,说明是正数
MOV AL,x
CMP AL,0;重新赋值,判断是否等于0
JC S2;等于则跳转,否则
SAL AL,1
JC S3;CF是否等于1,等于1,说明是负数
JMP DONE
S1:MOV AH,y1
MOV y,AH
JMP DONE
S2:MOV AH,y2
MOV y,AH
JMP DONE
S3:MOV AH,y3
MOV y,AH
JMP DONE
DONE: MOV AH,4CH
INT 21H
CODE ENDS
END START

DATA SEGMENT
    Y DB 0  ;(此处存放判定结果)
    X DB -3  ;(此处设定要用的X,代换调“?”即可)
DATA ENDS
CODE SEGMENT
    ASSUME CS:CODE,DS:DATA
START:
    MOV AX,DATA
    MOV DS,AX
    MOV AL,X
    CMP AL,0
    JE S2
    MOV AL,X
    SAL AL,1    ;算术左移指令,左移1位将最高位符号标志位移进符号位CF
    JNC S1      ;如果没有Carry,CF不等于1,说明是正数
    JMP S3
S1:
    MOV AH,1
    MOV Y,AH
    JMP DONE
S2:
    MOV AH,0
    MOV Y,AH
    JMP DONE
S3:
    MOV AH,-1
    MOV Y,AH
DONE:
    MOV AH,4CH
    INT 21H
CODE ENDS
END START

追问

???

感谢大佬!

我想问下为什么数据段定义 Y DB ?为什么会出错?

追答

好像这个模拟器不支持❓

追问

我的软件是emu8086

温馨提示:答案为网友推荐,仅供参考
相似回答