| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 371 人关注过本帖
标题:请大家帮忙修改一下这个程序
只看楼主 加入收藏
kidangel666
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:93
专家分:139
注 册:2010-9-15
结帖率:78.95%
收藏
已结贴  问题点数:20 回复次数:1 
请大家帮忙修改一下这个程序
DATA     SEGMENT
DATA    ENDS
CODE    SEGMENT
    ASSUME    CS: CODE, DS:DATA
START:    MOV    AX, DATA
    MOV    DS, AX
    MOV    AH, 1
    INT     21H                    ;接受1位数字的ASCII
    MOV    DL,' '
    MOV    AH, 2
    INT    21H                    ;输出空格
    AND    AL, 0FH                ;数字的ASCII转换成十六进制
    XOR    AL, 0                  ;与0异或,为了判断为偶数还是奇数
    JP       ENUM                   ;为偶数转到ENUM
    MOV    DL,'1'                 ;奇数输出 1
    MOV    AH, 2
    INT    21H
    JMP     EXIT
ENUM:    MOV    DL,'0'                  ;偶数输出 0
    MOV    AH, 2
    INT    21H   
EXIT:    MOV    AH,4CH
    INT     21H
CODE    ENDS
    END    START
这个程序只能判断1位数字的奇偶,我想输入不定的一连串数字,只取最后1个数字进行判断,听说用int  16H能办到
但是不知道怎么做,能不能帮忙修改
搜索更多相关主题的帖子: 十六进制 CODE 
2011-06-01 16:16
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:20 
程序的难度是在于如何把输入的字符转换二进制信息保存在内存里,
楼主仔细参考输入子程序,相信对你有帮助。
程序代码:
assume    cs:code,ds:data
data    segment
buff    db    6,0,6 dup (0) ;定义输入缓冲区接受5位数字
msg1    db    "it's odd$"   ;显示奇数
msg2    db    "it's even$"  ;显示偶数
data    ends
code    segment
start:
    mov ax,data           ;定义数据段
    mov ds,ax

    call input            ;调用输入子程序,结果在AX里
    call crlf             ;调用换行子程序

    and ax,1              ;检测奇偶数,用test也可;区别就是and改变了ax的内容
    jz e                  ;
    mov dx,offset msg1    ;显示
    jmp ok 
e:
    mov dx,offset msg2   ;显示
ok:    
    mov ah,9
    int 21h    

    mov ah,4ch           ;返回OS
    int 21h
;crlf
crlf    proc uses ax dx
    mov ah,2
    mov dl,13
    int 21h
    mov dl,10
    int 21h
    ret
crlf    endp
;
;输入子程序,结果在AX中
input    proc
    mov dx,offset buff
    mov ah,10
    int 21h

    mov cl,buff+1
    mov ch,0
    mov si,offset buff+2
s1:
    mov ax,0
s2:
    mov dx,10
    mul dx
    and byte ptr [si],0fh
    add al,[si]
    adc ah,0
    inc si
    loop s2
    ret
input    endp
;
code    ends
end    start
图片附件: 游客没有浏览图片的权限,请 登录注册


[ 本帖最后由 ansic 于 2011-6-1 16:38 编辑 ]

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-06-01 16:34
快速回复:请大家帮忙修改一下这个程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040299 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved