鱼C论坛

 找回密码
 立即注册
查看: 6153|回复: 10

检测点16.1关于 add b,ax 是否合法

[复制链接]
发表于 2012-12-19 11:12:23 | 显示全部楼层 |阅读模式
4鱼币
检测点16.1assume cs:code
code segment
       a dw 1,2,3,4,5,6,7,8
       b dd 0
start: mov si,0
         mov cx,8
   s: mov ax,a[si]
      add b,ax
      adc b[2],0
      add si,2
      loop s
......
这里的代码第八行 "add b,ax"b是双字符,ax是单字符 不会出现编译错误吗
为什么书上第288页 add b,al 会出现编译错误 b为字符数据

最佳答案

查看完整内容

16.1 mov ax,a[si] add word ptr b[0],ax adc word ptr b[2],0 add si,2
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-12-19 11:12:24 | 显示全部楼层
16.1
mov ax,a[si]
add word ptr b[0],ax
adc word ptr b[2],0
add si,2
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-12-19 13:07:53 | 显示全部楼层
al是单字符,ax是双字
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-12-19 13:19:00 | 显示全部楼层
两个都不行哦,数据不匹配撒。
12.19.13.22.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-12-19 13:24:58 | 显示全部楼层
b是双字啊,肯定不能和ax相加
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-12-19 13:31:54 | 显示全部楼层
可能开始没说清楚,al是一个字节,8个bit,ax是一个字,两个字节,16个bit,b是双字,四个字节,32个bit
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-12-19 14:51:55 | 显示全部楼层

我自己找的网上的答案,没有进行编译,现在知道答案就是错的,自己也编译了一下知道错在那里了,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-12-19 14:55:36 | 显示全部楼层
小新110 发表于 2012-12-19 11:12
16.1
mov ax,a[si]
add word ptr b[0],ax

谢谢,知道自己错在那里了,word ptr 我感觉像C语言里的类型强制转换,不知道我理解的对不对,本来b是双字符,前面加 word ptr 强制b转为word类型
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-12-19 16:04:09 | 显示全部楼层
理解的对的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-4-24 18:21:39 | 显示全部楼层
路过看看呵呵
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-19 18:51:35 | 显示全部楼层
wawa 发表于 2012-12-19 14:55
谢谢,知道自己错在那里了,word ptr 我感觉像C语言里的类型强制转换,不知道我理解的对不对,本来b是双 ...

可以这么理解,实质上是ax是占2个字节,但是b是双字节的, 把2个字节放入双字节就出现了不匹配的问题,加上word ptr就相当于告诉ax放入b的2个字节的空间内,大家都是双字节,大小就匹配了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 08:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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