鱼C论坛

 找回密码
 立即注册
查看: 1688|回复: 4

关于汇编验证整数问题

[复制链接]
发表于 2014-5-24 00:46:45 | 显示全部楼层 |阅读模式
2鱼币
怎么样才能判断,从键盘输入的数是否是一个合法的整数?而且能判断出来(浮点数不是整数,负整数也算整数)???
应该怎么用汇编代码实现呢??求助!!!

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-5-24 01:52:15 | 显示全部楼层
思路是:输入的是不是数;不是,请再输入正确的数,是,OK进入下一层判断。
再判断是不是各种类型的数,如果是其中一种就BINGO!显示你输的是什么数。
很简单,多训练下逻辑思维。。。
另外去看看这篇文章:
提问的艺术
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-5-25 11:34:21 | 显示全部楼层

恩。。那个,判断负整数和浮点数应该怎么实现呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-5-26 00:39:36 | 显示全部楼层
奇怪了,8086CPU没有浮点指令好吧,到8087才有。建议LZ 先看看IEEE浮点表示法。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-5-26 03:05:18 | 显示全部楼层
接收到的是字符 你得自己算  整数就包括0-9和-号 不在这范围内就可以判定不是整数
这是我写的  我也是新手 写的比较乱:sad
sseg         segment para stack
        db 1024 dup(?)
sseg         ends

dseg         segment
buff        db 'Hello Word!',13,10,'$'
inte        db  10 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
        je  check
        mov inte[si],al
        inc si
        jmp get

check:        mov al,'$'
        mov inte[si],al
        xor si,si
        cmp al,inte[si]
        je exit
        mov al,'-'
        cmp inte[si],al
        jne check2
        inc si
       
check2:        cmp inte[si],30H
        jl  check3
        cmp inte[si],39H
        jg  exit
        inc si
        jmp check2
check3:        cmp inte[si],'$'
        je  print
        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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-1 01:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表