本文總結自:王爽的《彙編語言》
- 8086機器啓動過程
- 寄存器
- 內存
- 端口
- 中斷
- 彙編子程序
一、機器啓動過程
參看“《從機器啓動到內核初始化》”
二、寄存器
- 通用寄存器:AX、BX、CX、DX、SI、DI、SP、BP
- 段寄存器:DS、CS、SS、ES
- 指令指針:IP
- 標誌寄存器:flag
三、內存訪問
- [...]:內存訪問的符號
- 括號內放偏移地址
- 括號內的偏移地址可以是idata(常數)、BX、BP、SI、DI或他們的組合
- 其中BX不能和BP共存,SI不能和DI共存
- 可以存在的組合模式見下圖
- 默認段前綴是DS,如果用了BP,則默認是SS,其他段前綴需要寫明才能使用
- 數據長度
- 通過源或目的寄存器長度表明
- 沒有寄存器標明長度,則用byte/word prt指明
- 都沒有,則指令會默認操作數據長度,例如棧操作push/pop默認爲字
- 內存尋址方式
四、端口
- 64K個端口(本質是IO控制器中的寄存器,統一編址或者獨立編制)
- 端口讀寫指令:in和out
五、數據在哪裏
- idata立即數
- 寄存器
- 內存
- 端口
六、彙編子程序
七、中斷
8086彙編分爲內中斷和外中斷(保護模式下分爲軟中斷、異常和硬中斷,實模式的內中斷分爲軟中斷和異常,外中斷就是硬中斷),外中斷又分爲可屏蔽中斷INTR和不可屏蔽中斷NMI。
不管是內中斷還是外中斷,中斷處理的過程又分成硬件自動完成的中斷過程和處理中斷請求的中斷例程。
- 中斷過程:
- 中斷例程:
- 外中斷
- 中斷響應過程