組合語言中MOV和OFFSET指令的兩個問題?請高手指教小弟

時間 2021-05-04 18:23:37

1樓:律景明仁琴

offset彙編偽指令

mov暫存器,offset

變數名把變數名的地址傳輸到暫存器中去,在編譯的時候完成

2樓:歸傅香開冬

1、立即數不能直接傳遞給段暫存器,例:

***dw

2010

....

movds,***

;允許(***是變數)

....

movds,2010

;不允許(2010是立即數)

;***************

2、lea是計算機指令,在**執行期它具有計算能力。而offset是偽操作,它只在編譯時簡單地獲取一個變數的地址,在**執行期它沒有計算能力。

例:mov

bx,offset

str;源**

如果str的地址是2010,則編譯後該行變為:

movbx,2010

;執行**

下面是允許的:

movsi,offset

strmov

ax,[si+2]

類似下面是不允許的(這就是「括號裡的那段話的意思」):

movsi,offset

str+dx

3樓:桓溫廉癸

1、從intel的指令**集我們可以看到與段暫存器有關的有:

movmem,segreg

movsegreg,mem

movserreg,reg

很顯然,不能把立即數賦值給段暫存器。

data

segment作為偽指令,在編譯連線過程會被賦一個立即數的值。

2、mov

si,offset

strmov

ax,[si+2]

這個是沒錯的。

leasi,str與mov

si,offset

str最大區別在於offset

str是一條偽指令,與seg

data之類相似,它在編譯和連線過程被賦給一個值,你可以把它看成一個立即數,lea

si,str是把str的記憶體指標賦給si,你可以把它看成記憶體變數。另外,mov

si,offset

str是一條2位元組立即定址指令,lea

si,str是一條3位元組記憶體定址指令,後者雖然有比較靈活的定址方式,但前者具有更小的容量和更快的執行速度,推薦儘可能使用mov

si,offset

str。當然,offset後面只能是標號或變數名。

組合語言中的 offset

4樓:鯤鵬展翅

mov ax,offset 0a20h是數值地址0a20h的偏移地址0a20h給ax

5樓:種紹鈞斐彤

1、offset是將數值回送變數或標號的偏移地址值.

2.lea是將數值回送變數或標號的有效地址值.

3.seg,

彙編程式將回送變數或標號的段地址值.

4、lea

bx,list

5、mov

bx,offset

list

6、可以看出,lea和offset這兩條指令在功能上是相同的,bx暫存器都可得到符號地址list的值,而且此時mov指令的執行速度會比lea指令更快。但是,offset只能與簡單的符號地址相連,而不能和諸如list[si]或[si]等複雜運算元相連。因此,lea指令在取得訪問變數的工具方面是很有用的。

組合語言中的 offset什麼意思

6樓:戰為瘸子六

1、offset是將數值回送變數或標號的偏移地址值.

2.lea是將數值回送變數或標號的有效地址值.

3.seg, 彙編程式將回送變數或標號的段地址值.

4、lea  bx,list

5、mov  bx,offset  list6、可以看出,lea和offset這兩條指令在功能上是相同的,bx暫存器都可得到符號地址list的值,而且此時mov指令的執行速度會比lea指令更快。但是,offset只能與簡單的符號地址相連,而不能和諸如list[si]或[si]等複雜運算元相連。因此,lea指令在取得訪問變數的工具方面是很有用的。

7樓:善良的妖孽人生

mov ax,offset 0a20h是數值地址0a20h的偏移地址0a20h給ax

mov ax,offset 0a20h是數值地址0a20h的偏移地址0a20h給ax

8樓:閎雁鮮俊雅

inbuf----字面意義似乎是輸入緩衝區offset

inbuf----就是取

inbuf

的偏移首地址

組合語言中的 offset什麼意思?

9樓:戰為瘸子六

1、offset是將數值回送變數或標號的偏移地址值.

2.lea是將數值回送變數或標號的有效地址值.

3.seg, 彙編程式將回送變數或標號的段地址值.

4、lea  bx,list

5、mov  bx,offset  list6、可以看出,lea和offset這兩條指令在功能上是相同的,bx暫存器都可得到符號地址list的值,而且此時mov指令的執行速度會比lea指令更快。但是,offset只能與簡單的符號地址相連,而不能和諸如list[si]或[si]等複雜運算元相連。因此,lea指令在取得訪問變數的工具方面是很有用的。

關於組合語言中的loop指令,關於組合語言中的LOOP指令

這個程式迴圈一次,是由cx存放的。cx中存放的是迴圈的次數 程式設計計算2 12 assume cs code code segment mov ax,2 mov cx,11 s add ax,ax loop s mov ax,4c00h int 21h code ends end執行loop s時...

x86組合語言的MOV指令

mov在組合語言中是 資料傳送指令。用法如下 mov move opcodes 88,89,8a,8b,8c,8e,mov指令將第二個運算元 可以是暫存器的內容 記憶體中的內容或值 複製到第一個運算元 暫存器或記憶體 mov不能用於直接從記憶體複製到記憶體,其語法如下所示 mov mov mov m...

組合語言XOR命令什麼意思,組合語言中,指令XOR CX,CX表示什麼意思

凡筱雲 組合語言xor命令是異或的意思,異或,英文為exclusive or,或縮寫成xor 異或 xor 是一個數 算符。它應用於邏輯運算。異或的數學符號為 計算機符號為 xor 異或可逆運算。1 xor 1 0,0 xor 0 0,1 xor 0 1,0 xor 1 1。a xor b的運算方法...