最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

dword ptr指令詳細解析

 更新時間:2013年09月18日 10:05:44   作者:  
8086CPU的指令,可以處理兩種尺寸的數(shù)據(jù),byte和word。所以在機器指令中要指明,指令進行的是字操作還是字節(jié)操作

對于這個問題,匯編語言中用一下方法處理。

(1)通過寄存器名指明要處理的數(shù)據(jù)的尺寸。
例如:
下面的指令中,寄存器指明了指令進行的是字操作:
mov ax,1
mov bx,ds:[0]
mov ds,ax
mov ds:[0],ax
inc ax
add ax,1000

下面的指令中,寄存器指明了指令進行的是字節(jié)操作:
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無法得知所要訪問的單元,還是字節(jié)單元。

假如我們用Debug查看內存的結果如下:
2000:1000 FF FF FF FF FF FF ......

那么指令:
mov ax,2000H
mov ds,ax
mov byte ptr [1000H],1
將使內存中的內容變?yōu)椋?BR>2000: 1000 01 FF FF FF FF FF ......

而指令:
mov ax,2000H
mov ds,ax
mov word ptr [1000H],1
將使內存中的內容變?yōu)椋?BR>2000:1000 01 00 FF FF FF FF ......

這是因為 mov byte ptr [1000H],1訪問的是地址為 ds:1000H 的字節(jié)單元,修改的是ds:1000H 單元的內容;而mov word ptr [1000H],1 訪問的是地址為 ds:1000H 的字單元,修改的是 ds:1000H 和 ds:1001H 兩個單元的內容。

PTR用來指出操作數(shù)的類型或尺寸,通常用在跳轉/調子程序或尋址。尋址時用來指明是BYTE、WORD還是DWORD,跳轉時則是FAR或NEAR。

(3) 其他方法
有些指令默認了訪問的是字單元還是字節(jié)單元,比如:push [1000H] 就不用指明訪問的是字單元還是字節(jié)單元,因為push指令只進行字操作。

相關文章

  • C語言中數(shù)據(jù)是如何存儲在內存中的

    C語言中數(shù)據(jù)是如何存儲在內存中的

    使用編程語言進行編程時,需要用到各種變量來存儲各種信息。變量保留的是它所存儲的值的內存位置。這意味著,當您創(chuàng)建一個變量時,就會在內存中保留一些空間。您可能需要存儲各種數(shù)據(jù)類型的信息,操作系統(tǒng)會根據(jù)變量的數(shù)據(jù)類型,來分配內存和決定在保留內存中存儲什么
    2022-04-04
  • Qt6安裝教程(使用國內源)

    Qt6安裝教程(使用國內源)

    本文主要介紹了Qt6安裝教程(使用國內源),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • 基于C++編寫一個Json解析器

    基于C++編寫一個Json解析器

    這篇文章主要為大家詳細介紹了如何基于C++編寫一個Json解析器,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以了解一下
    2023-03-03
  • C++ const修飾變量和修飾函數(shù)介紹

    C++ const修飾變量和修飾函數(shù)介紹

    這篇文章主要介紹了C++ const修飾變量和修飾函數(shù)介紹,本文直接用實例來講解各自的作用,并總結了各自的使用技巧,需要的朋友可以參考下
    2015-03-03
  • C++基于遞歸算法解決漢諾塔問題與樹的遍歷功能示例

    C++基于遞歸算法解決漢諾塔問題與樹的遍歷功能示例

    這篇文章主要介紹了C++基于遞歸算法解決漢諾塔問題與樹的遍歷功能,簡單描述了遞歸算法的原理,并結合實例形式分析了基于遞歸算法解決漢諾塔問題與數(shù)的遍歷相關操作技巧,需要的朋友可以參考下
    2017-11-11
  • C語言結構體中內存對齊的問題理解

    C語言結構體中內存對齊的問題理解

    內存對齊”應該是編譯器的“管轄范圍”。編譯器為程序中的每個“數(shù)據(jù)單元”安排在適當?shù)奈恢蒙稀5荂語言的一個特點就是太靈活,太強大,它允許你干預“內存對齊”。如果你想了解更加底層的秘密,“內存對齊”對你就不應該再模糊了
    2022-02-02
  • C語言循環(huán)控制入門介紹

    C語言循環(huán)控制入門介紹

    大家好,本篇文章主要講的是C語言循環(huán)控制入門介紹,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • Qt使用QChart實現(xiàn)動態(tài)顯示溫度變化曲線

    Qt使用QChart實現(xiàn)動態(tài)顯示溫度變化曲線

    Qt的QChart是一個用于繪制圖表和可視化數(shù)據(jù)的類,提供了一個靈活的、可擴展的、跨平臺的圖表繪制解決方案,所以本文就將使用QChart實現(xiàn)動態(tài)顯示3個設備的溫度變化曲線,感興趣的可以了解一下
    2023-06-06
  • C++中Socket網絡編程實例詳解

    C++中Socket網絡編程實例詳解

    這篇文章主要介紹了C++中Socket網絡編程實例詳解的相關資料,需要的朋友可以參考下
    2017-04-04
  • C++判斷矩形相交的方法

    C++判斷矩形相交的方法

    這篇文章主要介紹了C++判斷矩形相交的方法,涉及C++針對平面坐標數(shù)學運算的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07

最新評論

永昌县| 京山县| 大安市| 保康县| 关岭| 尼勒克县| 衡阳市| 陇南市| 郧西县| 皋兰县| 延庆县| 玉龙| 开阳县| 茂名市| 长海县| 全椒县| 沭阳县| 上栗县| 铅山县| 庆安县| 柯坪县| 舞阳县| 沅陵县| 景洪市| 磴口县| 商城县| 陇川县| 福贡县| 阿图什市| 苏州市| 无极县| 平舆县| 准格尔旗| 辽中县| 安阳市| 昌吉市| 炎陵县| 称多县| 库尔勒市| 绥中县| 麻城市|