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
- ;操作符offset在汇编语言中是由编译器处理的符号,它的功能是
- ;取得标号的偏移地址
- assume cs:codesg
- codesg segment
- start:mov ax,offset start ;相当于mov ax,0
- s:mov ax,offset s ;相当于mov ax,3
- codesg ends
- end start