| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 525 人关注过本帖
标题:把bx中的16进制以16进制的形式输出出来
只看楼主 加入收藏
筐筐的橙
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2011-5-31
结帖率:100%
收藏
已结贴  问题点数:0 回复次数:2 
把bx中的16进制以16进制的形式输出出来
DATAS SEGMENT
    ;此处输入数据段代码  
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV BX,23ABH


                MOV DX,BX
    AND DX,0F000H
    ROR DL,1
    ROR DL,1
    ROR DL,1
    CMP DL,9
    JA JIA3
    ADD DL,30H
    JMP JIAA3
JIA3:ADD DL,37H
JIAA3:MOV AH,2
    INT 21H
                MOV DX,BX
    AND DX,0f00H
    ROR DL,1
    ROR DL,1
    CMP DL,9
    JA JIA2
    ADD DL,30H
    JMP JIAA2
JIA2:ADD DL,37H
JIAA2:MOV AH,2
    INT 21H
            MOV DX,BX
    AND DX,00F0H
    ROR DL,1
    CMP DL,9
    JA JIA1
    ADD DL,30H
    JMP JIAA1
JIA1:ADD DL,37H
JIAA1:MOV AH,2
    INT 21H
            MOV DX,BX
    AND DX,000FH
    CMP DL,9
    JA JIA
    ADD DL,30H
    JMP JIAA
JIA:ADD DL,37H
JIAA:MOV AH,2
   INT 21H  
 
    ;此处输入代码段代码
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

比较麻烦,因为寄存器不够用没用循环,思路就是分别把各位16进制移到最后,判断在a之前还是之后,转换成ascii然后输出,结果输出的结果是四只乱码。。。求前辈们帮改下。
搜索更多相关主题的帖子: 数据 
2011-06-13 21:18
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:9 
这是将DX里的数值以十六进制显示出来的子程序。供楼主参考。

程序代码:
;input:dx
disphex proc uses dx
        mov cx,4
d0:     push cx
        mov cl,4
        rol dx,cl
        push dx
        and dx,0fh
        cmp dl,10
        jb d1
        add dl,37h
        mov ah,2
        int 21h
        jmp jx
d1:
        add dl,30h
        mov ah,2
        int 21h
jx:
        pop dx
        pop cx
        loop d0

        ret
disphex endp
;

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-06-13 23:32
obstratiker
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:198
专家分:758
注 册:2011-5-5
收藏
得分:9 
那个 ror 是位移二进制数的,用一次相当于除以 2
所以你要让 dx 中的数移一位,得用四次,合计 12 次 (第一次位移)
另外你不应该 ROR DL,1   那 dh 中的数不是没位移了吗
直接 ror dx,1 好了
方法是对的(方法不好), ror 的次数不够
   
2011-06-16 22:50
快速回复:把bx中的16进制以16进制的形式输出出来
数据加载中...
 
   



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

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