当前位置:编程学习 > 汇编语言 >>

解决汇编语言程序

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寄存器的内容是什么? 汇编语言的。谁帮忙指导一下。

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,