我爱小惠 发表于 2013-3-12 01:26:26

我不信没人回答这个问题

本帖最后由 我爱小惠 于 2013-3-12 11:20 编辑

如何用汇编将3753000这个数字显示在MASM的黑框框上 我用的是下面的方法 但它就是不显示 不知道哪里错了 请哪高人指点一下 感激不尽


assume cs:code,ds:data
data segment
dd3753000
data ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,0b800h
mov es,ax
mov di,0
mov bx,0
mov ax,ds:
mov dx,ds:
mov es:,ax
mov es:,dx

mov ax,4c00h
int 21h
code ends
end start


谁抢了我的小红 发表于 2013-3-12 10:20:56

你是win7的系统吗 我上面也不能显示 单步debug的时候才显示

我爱小惠 发表于 2013-3-12 10:24:46

本帖最后由 我爱小惠 于 2013-3-12 11:21 编辑

谁抢了我的小红 发表于 2013-3-12 10:20 http://bbs.fishc.com/static/image/common/back.gif
你是win7的系统吗 我上面也不能显示 单步debug的时候才显示

我是XP的 这个程序是我自己写的 应该是哪里写错了 不知道谁能帮我一下

谁抢了我的小红 发表于 2013-3-12 16:56:01

我爱小惠 发表于 2013-3-12 10:24 static/image/common/back.gif
我是XP的 这个程序是我自己写的 应该是哪里写错了 不知道谁能帮我一下

你的程序逻辑是对的但是数据有点问题3753000的16进制为394428h后面你
mov ax,ds:
mov dx,ds:
mov es:,ax
mov es:,dx
复制了8个字节
我编译了你的代码 能通过但是也没有显示
我想可能是中断吧

bafengao 发表于 2013-3-12 17:51:24

路过,学习。。。

鱼游四海 发表于 2013-3-13 00:52:42

我是这样处理的你的数据,把作为字符串来处理,定义 db '3753000',加上循环 mov cx,7,相应的语句要变化。(如果你那样做就是将数据转化成ASC码来显示)其他的方暂时没有想到

鱼游四海 发表于 2013-3-13 01:40:33

其二是:利用十进制数码对应ASC码=十进制数码值+30H来转换

shansongh 发表于 2013-3-14 23:47:19

内容是不是数据太大了?
页: [1]
查看完整版本: 我不信没人回答这个问题