关于汇编验证整数问题
怎么样才能判断,从键盘输入的数是否是一个合法的整数?而且能判断出来(浮点数不是整数,负整数也算整数)???应该怎么用汇编代码实现呢??求助!!!
思路是:输入的是不是数;不是,请再输入正确的数,是,OK进入下一层判断。
再判断是不是各种类型的数,如果是其中一种就BINGO!显示你输的是什么数。
很简单,多训练下逻辑思维。。。
另外去看看这篇文章:
提问的艺术 fayisan 发表于 2014-5-24 01:52 static/image/common/back.gif
思路是:输入的是不是数;不是,请再输入正确的数,是,OK进入下一层判断。
再判断是不是各种类型的数,如 ...
恩。。那个,判断负整数和浮点数应该怎么实现呢? 奇怪了,8086CPU没有浮点指令好吧,到8087才有。建议LZ 先看看IEEE浮点表示法。
接收到的是字符 你得自己算整数就包括0-9和-号 不在这范围内就可以判定不是整数
这是我写的我也是新手 写的比较乱:sad
sseg segment para stack
db 1024 dup(?)
sseg ends
dseg segment
buff db 'Hello Word!',13,10,'$'
inte db10 dup(?)
dseg ends
cseg segment
assume cs:cseg,ds:dseg,ss:sseg
start: mov ax,dseg
mov ds,ax
mov si,0
mov dx,offset buff
mov ah,9
int 21h
get: mov ah,1
int 21h
cmp al,13
jecheck
mov inte,al
inc si
jmp get
check: mov al,'$'
mov inte,al
xor si,si
cmp al,inte
je exit
mov al,'-'
cmp inte,al
jne check2
inc si
check2: cmp inte,30H
jlcheck3
cmp inte,39H
jgexit
inc si
jmp check2
check3: cmp inte,'$'
jeprint
jne exit
print: xor dx,dx
mov dl,10
mov ah,2
int 21h
mov dx,offset inte
mov ah,9
int 21h
mov ah,1
int 21h
exit:
mov ax,4c00h
int 21h
cseg ends
end start
页:
[1]