offset + offset的问题
data segment
d1 db 2d
d2 db 2d
data ends
code segment
assume cs:code,ds:data
_main:
mov ax,offset d2 + offset d2
mov ah,4ch
int 21h
code ends
end _main
想不明白,这样一个好好的程序怎么就通不过编译呢
ASSUME只是告诉汇编程序建立段与段寄存器之间的联系,规定对某个段寻址时用哪个段寄存器提供段地址
但是并不设置段寄存器的初值. 假如你这样:
ASSUME DS:CODE,CS:DATA
那么程序访问DATA里的数据,它就会用CS寻址,而不是DS了.
而且我也觉得你的mov ax,offset d2 + offset d2 操作是无意义的.