匯編 第一天
1.看的小甲魚的視頻。
2.我用的是 mac筆記本。今天把dos裝上了,用來debug。裝的教程參考的這:https://blog.csdn.net/Zach_z/article/details/78171329
重點在於:用 mount c (資源地址) 掛上資源,後進入 c盤,運行debug。
3.知識點 :
3.1 匯編語言對大小寫不敏感
3.2 debug的六個功能:
R 查看、改變寄存器的內容。( r ax )
D 查看 內存中的內容
E 改寫 內存中的內容 (數字、機器碼)
A 以匯編指令的格式在內存中寫一條機器指令
T 執行一條機器指令
U 將內存中的機器指令翻譯成匯編指令
3.3 CS 為代碼段寄存器 放的是指令的段地址 和 IP為 指令指針(控制)寄存器 放的是 指令的偏移地址。
CS和IP 指示了CPU當前要讀取的指令的地址。
3.4 CPU要訪問內存單元時,要得到內存單元的物理地址
物理地址=段地址*16+偏移地址 (16進制乘16,相當於向左進一位 ——> N進制的數*N 相當於左移1位)
原因:(8086CPU)內部的總線為16位,要與外部20位的地址總線轉換。 (二進制 * 16相當於偏移 4位,總共就為20位了)
3.5 任意兩個連續的內存單元(N,N+1)可以看成地址為N的字單元中,地位字節 單元(N)和高位字節單元(N+1)。
4.今天的練習題: 內存情況如下,寫出指令執行後寄存器內的值。
解題思路,一、內存裏填內容 e 二、寫匯編 a 三、逐步執行t
e 1000:0 23 11 22 66 (連續的內存空間)
r
a cs:ip mov ax,1000 //把段地址數據放入通用寄存器中
cs:ip mov ds,ax //把通用數據的內容放入段寄存器中
cs:ip mov ax,[0] // 把段內偏移地址為0的 內存單元的內容送入寄存器中
cs:ip mov bx,[2]
....
t //單步執行
匯編 第一天