以下內容來自 彙編語言 第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中。