鱼C论坛

 找回密码
 立即注册
查看: 2417|回复: 5

不知道操作符offset的便宜怎么看

[复制链接]
发表于 2012-5-5 15:46:02 | 显示全部楼层 |阅读模式
2鱼币
不知道操作符的偏移怎么看  标号的便宜地址怎么来
assume cs:code
code segment
     mov ax,4c00h
  int 21h
  
start: mov ax,0
    s: nop
    nop
   
    mov di,offset s
    mov si,offset s2
    mov ax,cs:[si]
    mov cs:[di],ax
   s0: jmp short s
   
   s1: mov ax,0
       int 21h
    mov ax,0
   
   s2: jmp short s1
       nop
   
code ends
end start

mov di,offset s  为什么等同   mov di,8  ?  便宜怎么是8  怎么看?



最佳答案

查看完整内容

程序被加载以后,代码段第一句偏移地址为0 IP:0 mov ax,4c00h(占3个字节) IP:3 int 21h(占2个字节) IP:5 start: mov ax,0(占3个字节) IP:8 s: nop(占1个字节) 那么 下一个指令的IP为多少呢? NOP占一个字节,自然为9
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-5-5 15:46:03 | 显示全部楼层
程序被加载以后,代码段第一句偏移地址为0

IP:0            mov ax,4c00h(占3个字节)
IP:3            int 21h(占2个字节)
IP:5            start: mov ax,0(占3个字节)
IP:8            s: nop(占1个字节)

那么 下一个指令的IP为多少呢?   
NOP占一个字节,自然为9
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-5 18:54:01 | 显示全部楼层
offset s 就相当于取S处的偏移地址,偏移地址为8所以mov di,offset s  相当于mov di,8
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-6 13:25:51 | 显示全部楼层
因为mov di,offset s表示取s的所在的偏移地址赋给di。而在 s: nop,可以知道s所代表的地址是8.嘿嘿,不知道对不对但是你看着用哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-5-6 13:27:29 | 显示全部楼层

怎么看是8?怎么算  ?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-11 22:32:06 | 显示全部楼层
楼主的头像好可爱啊  我觉得你可以debug下啊 不很明显吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-30 22:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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