回 帖 发 新 帖 刷新版面

主题:求一个简单的汇编程序

从键盘接受一个数字如果该数字设X X>=0 时输出 Y=A 当 X<0时输出Y=B 输入的非数字显示INPUT ERROR 该怎么做啊

回复列表 (共4个回复)

沙发

谁会呀哥们们救救我吧

板凳

为什么不用别的语言写呢?用汇编太麻烦了.

3 楼


我们考试要这样地啊用C我这个菜鸟也会拉

4 楼

自己练习编了一个 小程序    希望对你有帮助

已经测试过了 可以运行  得到 需要的结果  不过 是需要exe2bin 变换成.com 形式就好了

code    segment
    assume    cs:code,ds:code
    org    100h

main    proc    near
    lea    dx,new_0
    mov    ah,09h
    int    21h
    mov    ah,01h
        int     21h
    cmp    al,'-'
    jz    SHOW1
    call    proc2
    jmp    exit_main
SHOW1:
    call    proc1
exit_main:
    mov    ax,4c00h
    int    21h
main    endp

proc1    proc    near

LOOP1:
    mov    ah,01h
    int    21h
        call    TEST_key
    cmp    mark,1
    jnz    LOOP1
        lea     dx,new_1
    mov    ah,09h
    int    21h
    ret    
proc1    endp

proc2    proc    near

LOOP2:
        call    TEST_key
    cmp    mark,1
    jz    exit_proc2
    mov    ah,01h
    int    21h
    jmp    LOOP2
exit_proc2:
    lea    dx,new_2
    mov    ah,09h
    int    21h
    ret    
proc2    endp

TEST_key    proc    near
    cmp    al,0dh
    jz    exit1
    cmp    al,'0'
    jb    ERROR1
    cmp    al,'9'
    ja    ERROR1
    ret
exit1:
    mov    mark,1        
    ret
ERROR1:
    mov    dx, offset new_3
    mov    ah,09h
    int    21h
    mov    ax,4c00h
    int    21h
TEST_key    endp 

new_0   db      'please input a number, and press ENTRE to end',0dh,0ah,'$'
new_1    db    'Y=A',0dh,0ah,'$'
new_2    db    'Y=B',0dh,0ah,'$'
new_3    db    'input an error',0dh,0ah,'$'
mark    db    0
erro_mark    db    0
code    ends
        end     main

我来回复

您尚未登录,请登录后再回复。点此登录或注册