注册 登录
编程论坛 汇编论坛

这个程序有点问题,麻烦帮我调下!

紫色年华 发布于 2012-12-08 22:50, 671 次点击
这个程序实现的是把一个数存在寄存器 AX中,然后将AX中的数和-1作比较,如果小于等于-1,就把-1赋给AX,否则将AX中的数和1做比较,如果小于1,就把0赋给AX,否则把1赋给AX。(顺便问一下,正数和负数存入寄存器中有区别吗?),麻烦帮我改一下,谢啦!
数据段:
data segment              
    DATA1 DW,5
    pkey db "press any key...$"
ends
代码段:code segment
start:
; set segment registers:
    mov ax, data
    mov ds, ax
    mov es, ax
               
    XOR AX,AX
           
    MOV AX,DATA1
    CMP AX,-1
    JG NEXT1
    MOV AX,-1
   
NEXT1:
    CMP AX,1
    JGE NEXT2
    MOV AX,0
   
NEXT2:
    MOV AX,1
            
    lea dx, pkey
    mov ah, 9
    int 21h        ; output string at ds:dx
   
    ; wait for any key....   
    mov ah, 1
    int 21h
   
    mov ax, 4c00h ; exit to operating system.
    int 21h   
ends
4 回复
#2
有容就大2012-12-10 18:47
有许多基本的错误 建议楼主找本书系统的学习下 比如 王爽汇编语言
改了一下 比照下吧。
程序代码:
assume cs:code, ds:data
data segment            
    DATA1 DW 5
    pkey db "press any key...$"
data ends

code segment
start:
; set segment registers:
    mov ax, data
    mov ds, ax
    mov es, ax            
    XOR AX,AX
         
    MOV AX,DATA1
    CMP AX,-1
    JG NEXT1
    MOV AX,-1
    JMP OK  

NEXT1:
    CMP AX,1
    JGE NEXT2
    MOV AX,0
    JMP OK

 
NEXT2:
    MOV AX,1           

OK: lea dx, pkey
    mov ah, 9
    int 21h        ; output string at ds:dx

    ; wait for any key....
    mov ah, 1
    int 21h
    mov ax, 4c00h ; exit to operating system.
    int 21h
code ends
end  start

#3
fecyty2012-12-15 15:35
xuexi
#4
紫色年华2012-12-17 22:53
谢谢帮我改这个程序,呵呵……
#5
朱三哥2012-12-20 03:11
有容阻挡我泡妹子了
1