8086CPU常见汇编指令、debug命令
一條指令對應的兩個操作數位數必須一致
匯編指令:
1、mov x,y
傳送:y到x
x,y:
寄存器,數據
寄存器,寄存器
寄存器,內存物理地址
內存物理地址,寄存器
內存物理地址,數據
寄存器,內存偏移地址(此時段寄存器默認為ds)
內存偏移地址,寄存器(此時段寄存器默認為ds)
內存偏移地址,數據(此時段寄存器默認為ds)
段寄存器,寄存器
寄存器,段寄存器
2、add x,y
加法:x+y保存于x中
x,y:
寄存器,數據
寄存器,寄存器
寄存器,內存物理地址
內存物理地址,寄存器
內存物理地址,數據
寄存器,內存偏移地址
內存偏移地址,寄存器
3、sub x,y
減法:x-y保存于x中
x,y:
寄存器,數據
寄存器,寄存器
寄存器,內存物理地址
內存物理地址,寄存器
寄存器,內存偏移地址
內存偏移地址,寄存器
4、jmp x
x:
物理地址
5、loop
mov cx n
s:
程序段
loop s(先進行cx-1,再進行判斷)
loop指令在cx!=0時,自動跳轉到s所指的位置
每次跳轉cx自動減1(循環計時器只能是cx)
6、push data/寄存器/物理地址1
將data/寄存器/物理地址1中的數據放入ss:sp中,sp=sp-2
7、pop 物理地址1/寄存器
將ss:sp中數據彈出棧,保存于物理地址1/寄存器,sp=sp+2
8086模式的DOS中debug命令
1、r:查看CPU寄存器的內容
2、d:查看內存中的內容
d 段地址:偏移地址
3、e:改寫內存中的內容
e 段地址:偏移地址 x x … x
4、u:將內存中的機器指令翻譯為匯編指令
u 段地址:偏移地址
5、t:執行一條機器指令
t 執行CS:IP所指向的指令
6、a:以匯編指令的格式在內存中寫入一條機器指令
a 段地址:偏移地址
匯編指令
……
a 后不接物理地址匯編指令默認寫入數據指針所指地址
7、p
p 使得程序直接跳轉到末尾
8、__ 物理地址(待補充)
功能:使程序無條件跳轉至指定物理地址
9、db、dw、dd(偽指令)
在內存中定義一個數據段
db(definite byte):定義的每一個數據大小為1個字節
dw(definite word):定義的每一個數據大小為1個字
dd(definite double word):定義的每一個數據大小為2個字
用法:
xxx segment
上述偽指令:data1,…datan
end xxx
10、div x
除法
x:
reg(通用寄存器)
內存單元
x用于保存除數
被除數y默認保存在 ax(累加器) 或 ax與dx中
y為16位時,y被保存于ax中,最后商保存在al,余數保存在ah
y 為32位時,低位被保存于ax中,高位被保存于dx中(此時x只能是16位) ,最后商保存在ax,余數保存在dx
11、ptr xxx
xxx:
db
dw
dd
一般用于指令沒有明確要操作的地址空間的大小(無寄存器時)
ptr xxx接在指令之后,表示即將訪問的內存大小為xxx
例
add [xxxxh],Eh
表明Eh為字節型數據0E
add ptr dw [xxxxh],Eh
表明Eh為字型數據000E
12、xx yy dup (data)
xx為偽指令db、dw、dd
yy為重復次數
data的單個數據占用內存大小由xx決定
例:
name segment
db n dup (4E)
end name
等價于
name segment
db 4E,… ,4E
end name
共n個4E,每個數據占用空間大小為1個字節
總結
以上是生活随笔為你收集整理的8086CPU常见汇编指令、debug命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 8086CPU汇编寻址写法
- 下一篇: 8086CPU寄存器介绍