彙編必知小知識點及常用debug命令

滄海一小帆發表於2020-10-20

訪問暫存器和記憶體

暫存器和資料儲存:

暫存器是CPU內部資訊儲存單元

暫存器種類:

  • 通用暫存器:AX,BX,CX,DX
  • 變址暫存器:SI,DI
  • 指標暫存器:SP,BP
  • 指令指標暫存器:IP
  • 段暫存器:CS,SS,DS,ES
  • 標誌暫存器:PSW

8086是16位暫存器,8088是8位暫存器

8086暫存器可以將暫存器分為:AH(高8位),AL(低八位)

MOV和ADD指令:

MOV是將資料送到暫存器中

add是將暫存器數值加

確定實體地址的方法:

實體地址:

  • CPU訪問記憶體單元是要給記憶體單元的地址

  • 所有記憶體單元構成儲存空間是一個一維線性空間

  • 每一個記憶體單元在這控制元件中都有一個唯一地址,這個地址被稱為實體地址

事實上:

  • 8086有20為地址匯流排,可傳送20位地址,定址能力為1MB

  • 8086是一個傳統的16位結構CPU、

    • 運算器一次最多處理16位資料,暫存器最大寬度為16位
    • 在8086內部處理,傳輸,暫存地址也是16位
  • 使用16為地址段地址,偏移地址合成一個實體地址

    • 實體地址=段地址×16+偏移地址

記憶體的分段表示方法

起始段地址必為16位

偏移地址16位,16位定址能力為64K,一個段最大長度為64K

用不同段地址(segment)和偏移地址形成一個實體地址

debug

可以做什麼:

DOS系統中著名除錯程式,也可以執行Windows系統實系統

使用debug程式,可以檢視CPU各種暫存器內容,記憶體儲器情況,並且在機器指令級跟蹤程式執行

debug就是傳奇

debug常見命令:

  • R命令:檢視,改變CPU暫存器內容
  • D命令:檢視記憶體內容
  • E命令: 改變記憶體中內容
  • U命令:將記憶體中機器指令翻譯成彙編指令
  • A命令:以彙編指令格式在記憶體中寫入機器指令
  • F命令:執行機器指令
  • 。。。

相關文章