解决汇编语言程序
DATA SEGMENT
X DW ?
Y DB ?
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START: MOV AX,DATA
MOV DS,AX
LEA SI,X
MOV AX,[SI]
CMP AX,00H
JGE A
MOV Y,0FFH
JMP B
A: JE B
MOV Y,01H
B: MOV Y,00H
MOV AX,4CH
INT 21H
CODE ENDS
END START
帮我看下这个程序
x>0时 y=1 ;x<0时 y=-1; x=0时 y=0
答案:DATA SEGMENT
X DW ?
Y DB ?
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START: MOV AX,DATA
MOV DS,AX
LEA SI,X
MOV AX,[SI]
CMP AX, 0
JGA A
MOV Y,0FFH
JMP SHORT S
A: JE B
MOV Y, 01H
JMP SHORT S
B: MOV Y, 00H
S: MOV AX, 4C00H
INT 21H
CODE ENDS
END START
这是改写之后的,因为程序是按照顺序执行的,JMP B会导致把Y= -1给覆盖掉,所以直接跳到返回操作系统的指令。你可以用DEBUG来调试,查找程序的错误
上一个:C语言中的指针如何进入嵌入的汇编语言?
下一个:执行下列指令后AX寄存器的内容是什么? 汇编语言的。谁帮忙指导一下。