不知道为什么会有这样的结果?

jdjb 2002-12-04 10:56:15
imagew dw 1234h,5678h
imaged dd 12345678h

bt imagew,4 ;cf=1,[imagew]=1234h
mov cx,22 ;1号
btc imagew,cx ;cf=1,[imagew+2]=5638h
btr imaged,6 ; cf=1,[imaged]=12345638h 2号
movzx eax,cx
bts imaged,eax ;cf=0,[imaged]=12745678h

一号位我认为改为22H 才会有下面一行的结果
可是2号这行以下的部分我一直无法理解
为什么有这些的结果
(杨季文的那本黑皮书P343)
...全文
15 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
giantzz 2002-12-24
  • 打赏
  • 举报
回复
楼上的错了,贴主的没错

这几条语句没有问题,是贴主理解上有问题,为什么要把22后面加H,是测试第22位,不是第22H位.至于最后一条语句,是把第22位放入CF,然后再把第22位置1,就是把3变成7.把书上的该部分再看一遍,就应该明白了
ahalf 2002-12-24
  • 打赏
  • 举报
回复
不论何种bt操作,总要把目的位放入CF
对于btr imaged,6 ; cf=1,[imaged]=12345638h这行
可能是你写错了,上面的定义是:imaged dd 12345678h
不知道那个输错了?

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧