. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
主题 : :  对offset的一点疑问,请大家指点下:-)  [待解决] 回复[ 2次 ]   点击[ 410次 ]  
hacker
[帖 主] [ 发表时间:2009-02-20 14:48 ] 
荣誉值:1
信誉值:0
注册日期:2009-01-25 01:18
先看下面的代码

assume cs:code
data segment
a:        
        db 16 dup(0)
data ends

code segment
        db 16 dup(0)
start:        mov ax,start          ;下面一行有 offset !!!
        mov ax,offset start
s:        mov ax,s
        mov ax,a
        mov ax,4c00h
        int 21h 
code ends
end start

我的机器上Debug反汇编,代码如下

0D08:0010 B81000        MOV     AX,0010
0D08:0013 B81000        MOV     AX,0010          ;有无offset编译后机器码一样
0D08:0016 B81600        MOV     AX,0016
0D08:0019 B80000        MOV     AX,0000
0D08:001C B8004C        MOV     AX,4C00
0D08:001F CD21          INT     21

很显然  "标号:" 代表了标号相对于该段首的偏移地址
而offset也是取标号的偏移地址
那么这2者到底还有什么区别呢?
hacker
[第1楼] [ 回复时间:2009-02-21 11:13 ] 
荣誉值:1
信誉值:0
注册日期:2009-01-25 01:18
请大家发表下意见吧 -_-!
即使这个问题很幼稚......
多谢了
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved