彙編中OFFSET的用法和所指內容

2021-03-04 08:54:42 字數 3189 閱讀 7198

1樓:匿名使用者

offset的用法,以前push的都是位址或者暫存器位址,現在那些字串位址咱可沒有。

於是版就用offset關鍵字

權來得到這些字串的偏移位址,從而引用字串。從而可以push。

當然 invoke中用 addr ,addr多明顯就是address位址的意思。

offset(reference,rows,cols,height,width) offset 在彙編中可以獲得運算元的偏移位址。用法:   例如:

平時invoke messagebox,null,addr sztext,addr szcaption,mb_ok

請問彙編中 offset 怎麼解釋啊。

2樓:哥德堡快遞

這個沒法解釋。offset是指某個變數或標號處**在記憶體中的位址,光溜溜的offset沒見過。

彙編中的offset 5

3樓:匿名使用者

呵呵,我幫你認真的解釋一下:

table dw 10,20,30,40,50

;第一句的解釋:定義以table為首位址的五個資料; dw指字型別,就好像c語言的基本型別

的功能一樣,前面的table則是識別符號。

entry dw 3

;第二句的解釋:道理同上,看懂一的解釋二應該也清楚了.。.

..........

mov bx,offset table

;第三句的解釋:意思是將table的首位址傳送給基址暫存器bx,offset +x符識符,

表示取x的首位址,整個語句的定址方式為立即數定址,mov在這語句中

起傳送位址的作用.此時bx=table(表示位址.)

add bx,entry

;第四句的解釋:bx = bx+0003h =table+3(0003h是3的十六進位制也沒什麼區別)

mov ax,[bx]

;第五句的解釋:bx是乙個暫存器,加上"[bx]"就是bx(從上面我們可以看出bx暫存器裡面是位址) 這個位址裡包含的內容,些時bx=table+3而[table+3]的內容就是1e00h傳送給ax.

如果看懂上面的文字後,就可以分析ax為什麼是1e00h了:

tabble的數是這樣的儲存的:

10——>000ah 邏輯儲存——>0a (table+0)位

20——>0014h 00 (table+1)位

30——>001eh 14 (table+2)位

40——>0028h 00 (table+3)位

50——>0032h 1e (table+4)位

00 (table+5)位

。。。 。。。。

從第五句我們可以看到:

ax=[bx]=[table+3]

而彙編有這樣的規定,以低位表示乙個字,那麼加上高位 (table+4)就組成了乙個字了,

而[table+4]單元裡的內容是:1eh,則高位與低位一同組成字.故ax=1e00h。

說明:在以上的解釋過程中用"="即等號只是為了表達簡潔而以,彙編中沒有等號直接寫的。

我感覺整個過程解釋的蠻詳細了,不知道你看明白了嗎?呵呵.

4樓:渝舟漂遊

mov bx,offset table相當於lea bx,table。table 是被定義的(10,20,30,40,50)在儲存區的符號位址。通過add bx,entry 此時bx儲存的有效位址即為(table+3),其內容恰好是ah=30d(1eh),因為ax是16位,所以al為00h,最終就是1e00h。

不知道正確否?

5樓:匿名使用者

彙編中的off as a特。

6樓:

offset就是取table的偏移位址,但是究竟為什麼是這個值沒人知道

這是編譯器自己安排的

你只要知道offset是取偏移位址的就行了

7樓:匿名使用者

哈哈...讓我想起了大學學彙編課.....不過都忘了

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

8樓:戰為瘸子六

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指令在取得訪問變數的工具方面是很有用的。

組合語言的操作符offset具體有什麼用?求詳細解答

9樓:匿名使用者

簡單說,是指乙個位址。

如:mess db 'hello!'

顯然,mess是乙個位址,它存放著「hello」這個字串。

如何將mess的位址放入dx暫存器呢,可用兩種不同的指令:

1、 lea dx,mess

2、 mov dx,offset mess他們的作用是等價的。

10樓:你們怎麼都

這個函式中不止乙個單元格哦

關鍵是offset函式 其語法可以簡單理解成這樣:

offset(起始點,移動的行數,移動的列數,擴充套件選取的行數,擴充套件選取的列數)

以你的公式為例

將b1作為起始點 按照match出來的數值往下移動n行例如數值為2 則下移到第三行(1+2)

公式中 移動的列數為預設 即表示0 不移動列所以產生新的起始點:b3單元格

擴充套件選取的行數 在公式中也是預設

因此 以b3為新起點 選取b:d三個列的單元格形成乙個資料區域 即b3:d3

sum公式就是對這個區域進行求和

注意:移動的時候 起始點不包括在內

擴充套件選取的時候包括新起點

組合語言中out和in的用法,組合語言中OUT和IN的用法

在8086系列的組合語言中 in指令的意思是從埠中讀取資料,比如 in al,80h,將80h埠資料讀入到al中 out指令的意思是往埠輸出資料,比如 out 80h,al,將al輸出到80h埠 組合語言中,cpu對外設的操作通過專門的埠讀寫指令來完成 讀埠用in指令,寫埠用out指令。例子如下 i...

在單鏈表中,已知q所指結點是p所指結點的直接前驅,若在q

q next表示結點中存放的指標,該指標用來指向某個結點。原來的連線關係是q next p,意思是q中存放的指標的值是p,即q指向p。比如 原來排隊p在q的後面,現在要插乙個s在他們中間,需要做的事就是把原來p,q二人的聯絡轉化為p,s,q三人的聯絡,先讓p指向s,即q next s 然後讓s指向q...

關於日語中的用法日語中的用法

從您的問題來看應該是乙個初學者吧,這句話是教材中的課文,簡單給你解釋一下。美術館 作品 這句話中,首先是該課的句型 名 地點 名 物 表示的是某地有某物,但是為什麼是 呢?首先書上的後面有解釋,他是乙個助詞的連用,但事實上我們可以更簡單的了解。首現,在這裡的確有對比的含義,是指提問者有詢問和其他的美...