程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> dword ptr指令具體解析

dword ptr指令具體解析

編輯:關於C++

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指令只停止字操作。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved