dword ptr指令具體解析。本站提示廣大學習愛好者:(dword ptr指令具體解析)文章只能為提供參考,不一定能成為您想要的結果。以下是dword ptr指令具體解析正文
關於這個成績,匯編說話頂用一下辦法處置。
(1)經由過程存放器名指明要處置的數據的尺寸。
例如:
上面的指令中,存放器指清楚明了指令停止的是字操作:
mov ax,1
mov bx,ds:[0]
mov ds,ax
mov ds:[0],ax
inc ax
add ax,1000
上面的指令中,存放器指清楚明了指令停止的是字節操作:
mov al,1
mov al,bl
mov al,ds:[0]
mov ds:[0],al
inc al
add al,100
(2)在沒有存放器名存在的情形下,用操作符 X ptr 指明內存單位的長度,X在匯編指令中可認為word或byte。
例如:
上面的指令中,用word ptr 指清楚明了指令拜訪的內存單位是一個字單位:
mov word ptr ds:[0],1
inc word ptr [bx]
inc word ptr ds:[0]
add word ptr [bx],2
上面的指令中,用byte ptr 指清楚明了指令拜訪的內存單位是一個字單位:
mov byte ptr ds:[0],1
inc byte ptr [bx]
inc byte ptr ds:[0]
add byte ptr [bx],2
在沒有存放器介入的內存單位拜訪指令中,用word prt 或byte ptr 顯性地指明所要拜訪的內存單位的長度是很需要的。不然,CPU沒法得知所要拜訪的單位,照樣字節單位。
假設我們用Debug檢查內存的成果以下:
2000:1000 FF FF FF FF FF FF ......
那末指令:
mov ax,2000H
mov ds,ax
mov byte ptr [1000H],1
將使內存中的內容變成:
2000: 1000 01 FF FF FF FF FF ......
而指令:
mov ax,2000H
mov ds,ax
mov word ptr [1000H],1
將使內存中的內容變成:
2000:1000 01 00 FF FF FF FF ......
這是由於 mov byte ptr [1000H],1拜訪的是地址為 ds:1000H 的字節單位,修正的是ds:1000H 單位的內容;而mov word ptr [1000H],1 拜訪的是地址為 ds:1000H 的字單位,修正的是 ds:1000H 和 ds:1001H 兩個單位的內容。
PTR用來指出操作數的類型或尺寸,平日用在跳轉/音調法式或尋址。尋址時用來指明是BYTE、WORD照樣DWORD,跳轉時則是FAR或NEAR。
(3) 其他辦法
有些指令默許了拜訪的是字單位照樣字節單位,好比:push [1000H] 就不消指明拜訪的是字單位照樣字節單位,由於push指令只停止字操作。