以下內容來自 組合語言 第2版 作者:王爽
1. 8086cpu不支援將資料直接送入段寄存器,mov bx,1000H, mov ds,bx 可用bx中轉,也可用別的寄存器中轉。
2. cs程式碼片段寄存器、ip指令指標寄存器指示了cpu當前要讀取指令的地址
3. mov不能用於cs、ip ,jmp用於cs、ip jmp 段地址:位移地址 jmp 某一合法寄存器 (修改ip)
4. debug命令選項
r 查看 -r、修改( -r 寄存器名)cpu寄存器內容
d 查看記憶體內容 -d 段地址:位移地址 128個記憶體單元 接著使用 -d 列出後續128個記憶體單元內容 -d 段地址:起始位移 結束位移 -d 段寄存器:位移地址
e 改寫記憶體內容 -e 起始地址 資料 資料 資料 。。。 -e 起始地址 斷行符號 (空格跳過,斷行符號結束)
e 向記憶體寫入機器碼,u查看記憶體中機器碼的含義,t執行記憶體中的機器碼
u -u 段地址:位移地址
t -t 執行 cs:ip指向的指令 在執行修改寄存器ss的指令時,下一條指令也緊接著被執行。
a -a 段地址:位移地址 以彙編指令的形式在記憶體中寫入機器指令
5. [...]表示一個記憶體單元,...表示位移地址,ds為段地址
6. mov 操作 不可 段寄存器到段寄存器 也不可 記憶體到記憶體 也不可資料到段寄存器
資料到記憶體 樣本: 注意必須加上ptr語句 mov [0],word ptr 5 或 mov [0],byte ptr 5
add 、 sub操作 不可操作 段寄存器 也不可記憶體到記憶體 也不可資料到記憶體
7. 對應
8. 棧操作 push pop 都是以字為單位!!!
答:SP = 0000
段寄存器有: CS DS SS ES
inc 對內容+1,不是地址。
reg 寄存器 sreg 段寄存器
中斷處理常式要儲存自身用到的寄存器的原因如下:中斷嵌套
bx、si、di、bp,在8086cpu中,只有這4種寄存器可以用在[...]中來進行記憶體單元的定址。可以單獨出現或以[bx+si]、[bx+di]、[bp+si]、[bp+di]。只要在[...]中使用bp,而指令中沒有給出段地址,段地址就預設在ss中。