1. 程式人生 > >寄存器(內存訪問)

寄存器(內存訪問)

分享圖片 png 處的 inf debug 16進制 add 發生 區別

技術分享圖片技術分享圖片

技術分享圖片技術分享圖片

技術分享圖片

debug的使用可以在上部分的CPU原理查詢:

執行完程序之後查看對應的通用寄存器的值,觀察是不是如程序所示的那樣對應寄存器的地址發生改變。

技術分享圖片技術分享圖片

說明:如果第三行的代碼是:mov ax,[0] 那麽傳給ax的就是1123,如果代碼是mov al,[0] 那麽傳給ax的就是23,在這裏主要是區分字節和字的區別,ax傳輸的字,al傳輸的是字節 中括號裏面是偏移地址,包括字節和字兩種形式

技術分享圖片技術分享圖片

技術分享圖片

問題3.3和3,4的操作步驟:

先使用指令 e 1000:0 23 11 22 11 將對應的數據放進去內存d

然後使用指令 r 查看ds:ip(段地址和偏移地址的位置,又叫做物理地址)的位置,本教程介紹的ds:ip是073f:100

使用指令 a 073f:100可以進入寫入指令的模式,然後輸入上面的指令,可以修改對應的通用寄存器值

最後使用 d 1000:0 4 可以查看該物理地址指向的內存裏面的前五個值,可以發現對應的值的變化情況和之前沒有使用指令之前的區別

提示:在第三行代碼中的11316使用問題的,因為debug中指令中默認的數值應該是16進制的數據,而此處的11316是十進制的數值,所以應該先將113156轉換成16進制的2c34,再輸入即可

mov、add、sub指令的用法:

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

寫幾條指令,累加前三個數據段中的前三個字型數據:

技術分享圖片

小結:

技術分享圖片技術分享圖片

寄存器(內存訪問)