主题:求一个简单的汇编程序
lxmir
[专家分:0] 发布于 2006-07-12 15:43:00
从键盘接受一个数字如果该数字设X X>=0 时输出 Y=A 当 X<0时输出Y=B 输入的非数字显示INPUT ERROR 该怎么做啊
回复列表 (共4个回复)
沙发
lxmir [专家分:0] 发布于 2006-07-12 16:31:00
谁会呀哥们们救救我吧
板凳
一木纯 [专家分:40] 发布于 2006-07-13 12:33:00
为什么不用别的语言写呢?用汇编太麻烦了.
3 楼
lxmir [专家分:0] 发布于 2006-07-15 08:23:00
我们考试要这样地啊用C我这个菜鸟也会拉
4 楼
轩儿 [专家分:60] 发布于 2006-07-16 22:32:00
自己练习编了一个 小程序 希望对你有帮助
已经测试过了 可以运行 得到 需要的结果 不过 是需要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
我来回复