注册 登录
编程论坛 汇编论坛

汇编中有关存储及输出的一些疑惑,求高手解答

bluecoyote 发布于 2010-06-02 21:28, 625 次点击
程序代码:
DSEG    SEGMENT
RAL     DB      02H
DSEG    ENDS
CSEG    SEGMENT
        ASSUME  CS:CSEG,DS:DSEG
START:  MOV     AX,DSEG
        MOV     DS,AX
        MOV     DL,RAL
    ADD    DL,30H
        MOV     AH,02H
        INT     21H
        MOV     AH,4CH
        INT     21H
CSEG    ENDS
        END     START

我在这个程序中就是想验证下输出,输入的数在机器中不是以ASCII码存放吗,
但是我直接输出却不行,必须有“ADD    DL,30H”这句,要是没这句输出一个笑脸。
既然是ASCII为什么不能直接输出,还要加上30H???
3 回复
#2
zklhp2010-06-02 22:47
我在这个程序中就是想验证下输出,输入的数在机器中不是以ASCII码存放吗,

既然是ASCII为什么不能直接输出,还要加上30H???



既然不加30h是笑脸 说明您这个验证得出的结论是 这个数不是以ASCII存储的

确切的讲 你这里直接定义 是几就是几 输入的时候为什么是32h 33h 呢 就是因为是“输入”的 输入的时候 中断会以某种格式存储 有的时候是ASCII~

所以你这个实验的问题和实验内容其实是不符的

想验证的话 实验一下输入的中断 输入再输出 看看~

你这里验证的其实是 定义的数据在内存里存在形式~ 注意是定义的
#3
bluecoyote2010-06-03 14:27
哦,似乎有点明白了。直接定义的数据和由自己在屏幕输入的数据在机器内的存储方式是不一样的,我把这个给弄混了。。。谢谢你了
#4
bluecoyote2010-06-03 14:35
回复 2楼 zklhp
我还有一个问题想请教,就是怎么输出AX寄存器里面的数,不知道怎么把它显示出来,我想把AH和AL分别输出,不知道方法对不对,希望你指点下。。
1