萍聚社区-德国热线-德国实用信息网

 找回密码
 注册

微信登录

微信扫一扫,快速登录

萍聚头条

查看: 1706|回复: 5

问个汇编的小问题

[复制链接]
发表于 2009-2-4 00:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

x
mov bx,1000h    //ip递增3
mov ds,bx         //ip递增2,这里为什么是递增2啊?
mov al,[0]         //ip递增3

这个问题困惑偶好几个小时了:(
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2009-2-6 23:08 | 显示全部楼层
同样是mov指令
翻译成机器代码的时候 应该会因为不同的寻址模式 生成不同的指令
之所以RISC的指令简单因为RISC的寻址方式有限
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
 楼主| 发表于 2009-2-10 22:00 | 显示全部楼层
可是这是一段连续的代码啊
还是register 到register 就是2 呢?
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
 楼主| 发表于 2009-2-10 22:03 | 显示全部楼层
可是这是一段连续的代码啊
还是register 到register 就是2 呢?
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2009-2-10 23:55 | 显示全部楼层
可是这是一段连续的代码啊
还是register 到register 就是2 呢?
karlfriedrich 发表于 2009-2-10 21:03


不知道是什么cpu的汇编。如果是x86的,的确是这样。因为,翻译成86的指令,
0000: bb 00 10    mov bx,1000h    //ip递增3,因为,这条指令有3个字节
0003: 8e db         mov ds,bx         //ip递增2,因为,这条指令有2个字节
0005: a0 00 00    mov al,[0]         //ip递增3

有时候,寄存器寻址,ip只增加1都有可能。所以,有时候,为了节约存储空间,不用mov ax, 0   (b8 00 00)
而是 xor ax, ax  (33 c0)
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
 楼主| 发表于 2009-2-14 16:59 | 显示全部楼层
不知道是什么cpu的汇编。如果是x86的,的确是这样。因为,翻译成86的指令,
0000: bb 00 10    mov bx,1000h    //ip递增3,因为,这条指令有3个字节
0003: 8e db         mov ds,bx         //ip递增2,因为, ...
recbio 发表于 2009-2-10 22:55

看来从寄存器到寄存器就是ip递增2了,不论寄存器里有多少个字节
xor eax,eax可读性好像不太强,呵呵,除非只是做递增
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
您需要登录后才可以回帖 登录 | 注册 微信登录

本版积分规则

手机版|Archiver|AGB|Impressum|Datenschutzerklärung|萍聚社区-德国热线-德国实用信息网 |网站地图

GMT+2, 2024-4-28 19:32 , Processed in 0.054662 second(s), 19 queries , MemCached On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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