code segment
a db 1,2,3,4
b dw 0
標號a,描述了位址code:0,和從這個位址開始,以後的記憶體單元都是位元組單元;
標號b,描述了位址code:8,和從這個位址開始,以後的記憶體單元都是字單元
mov ax,b相當於mov ax,cs:[8]
如果想在**段中,直接用資料標號訪問資料,則需要用偽指令assume將標號所在段和乙個段暫存器聯絡起來
否則編譯器在編譯的時候,無法確定標號的段位址在哪乙個暫存器中
直接定址表
data
table dd 『01234556789abcdef』
data
mov ax,table[bx]
組合語言 直接定址表
assume cs code code segment a dw 1,2 3,4 5,6 7,8 a代表了code段的首位址code 00,由於dw,也代表了a開始的這一小段記憶體都是按照字單元儲存的。從code 0 code 15 也就是,a 0 a 15 a si 代表了從code 00開始的偏...
組合語言 直接定址表
assume cs code code segment 從code 0 code 15 也就是,a 0 a 15 a si 代表了從code 00開始的偏移量為si的記憶體單元。此記憶體單元是字單元,故si的偏移量是2個位元組。剩下的空間都是真正的cpu執行的 了。start mov si,0 mo...
組合語言 直接定址表
功能 將a位址中的1 8的數值相加,並儲存到b位址中。assume cs code code segment a db 1,2,3,4,5,6,7,8 b dw 0 start mov si,offset a mov di,offset b mov ah,0 mov cx,8 s mov al,cs...