汇编语言,数据段中,标号前面加不加offset有什么区别?

data segment
string db 40h dup(0)
string_1 db 'Input characters:',0dh,'$'
data ends

那么,
mov bx,string

mov bx offset string

有什么区别呢?


加了offset附给bx的是string的地址,不加是附的string的值

//*************************理解

content db 10h dup(0)

move ax offset content

content这个标号前加了offset相当于将content的偏移地址赋值给了ax,偏移地址是编译器算出来的,这样就类似

与把offset content变成了一个代表偏移地址的数值,相当于立即数寻址方式了。

这样汇编在执行指令时变成了 :move ax 数值     

操作符offset

[plain]  view plain  copy
  1. ;操作符offset在汇编语言中是由编译器处理的符号,它的功能是  
  2. ;取得标号的偏移地址  
  3. assume cs:codesg  
  4. codesg segment  
  5. start:mov ax,offset start  ;相当于mov ax,0  
  6.     s:mov ax,offset s      ;相当于mov ax,3  
  7. codesg ends  
  8. end start  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值