寄存器(內存訪問)
阿新 • • 發佈:2019-05-11
分享圖片 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指令的用法:
寫幾條指令,累加前三個數據段中的前三個字型數據:
小結:
寄存器(內存訪問)