複製鏈接
請複製以下鏈接發送給好友

OFFSET

(彙編偽指令)

鎖定
OFFSET,彙編偽指令。
格式:mov 寄存器,offset變量名或標號
彙編程序將回送變量或標號的偏移地址。
函數語法
OFFSET(reference,rows,cols,height,width)
Reference 作為偏移量參照系的引用區域。Reference 必須為對單元格或相連單元格區域的引用;否則,函數 OFFSET 返回錯誤值#VALUE!。
Rows相對於偏移量參照系的左上角單元格,上(下)偏移的行數。如果使用 5 作為參數 Rows,則説明目標引用區域的左上角單元格比 reference 低 5 行。行數可為正數(代表在起始引用的下方)或負數(代表在起始引用的上方)。
Cols 相對於偏移量參照系的左上角單元格,左(右)偏移的列數。如果使用 5 作為參數 Cols,則説明目標引用區域的左上角的單元格比 reference 靠右 5 列。列數可為正數(代表在起始引用的右邊)或負數(代表在起始引用的左邊)。
Height高度,即所要返回的引用區域的行數。Height 可以為負,-x表示當前行向上的x行。
Width寬度,即所要返回的引用區域的列數。Width 可以為負,-x表示當前行向左的x列。
offset 在彙編中可以獲得操作數的偏移地址。用法:
例如:平時invoke MessageBox,NULL,addr sztext,addr szcaption,MB_OK
當然前面已經定義過sztext和szcaption為字符串了
szcaption db '小例子',0
sztext db 'powerful!',0
此時 invoke MessageBox,NULL,addr sztext,addr szcaption,MB_OK可以寫為
push MB_OK
push offset szcaption
push offset sztext
push NULL
call MessageBox
這樣看起來就更接近彙編語言習慣了,當然用invoke更簡單點,這裏只是為了説明 offset用法;