1、指令: jmp 段地址:偏移地址 ->修改段地址CS和偏移地址 IP
指令: jmp 某一合法寄存器 ->僅修改IP的內(nèi)容,CS不變、
2、WINDOWS DOS 下的Debug指令
R->查看、改變寄存器內(nèi)容 “-r” 查看 “ -r ax ” 修改
D->查看內(nèi)存的內(nèi)容 ①、“d 段地址:偏移地址 ” 從1000:0處開始顯示內(nèi)存,共128個單元
②、“d 段地址:偏移地址 結(jié)尾偏移地址”
E->改寫內(nèi)存的內(nèi)容 “e 起始地址 數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù) ...” 聯(lián)系改寫一系列數(shù)據(jù)
U->把內(nèi)存單元翻譯成匯編指令 "u 起始地址"
T->執(zhí)行一條匯編指令
A->命令以匯編指令的形式在內(nèi)存中寫入機器碼
3、mov 指令:①、將數(shù)據(jù)直接送入寄存器 ②、將一寄存器的內(nèi)容送到另一寄存器
③、將一個內(nèi)存單元中的內(nèi)容送入一個寄存器中 “mov 寄存器名,內(nèi)存單元” mov al,[0]
④、“MOV 內(nèi)存單元地址,寄存器名 ” 將數(shù)據(jù)從寄存器送入內(nèi)存單元 mov [0],al
[...]表示一個內(nèi)存單元的偏移地址,CPU自動取ds的數(shù)據(jù)作為內(nèi)存單元的段地址。
4、CS:IP 與 SS:SP操作
CS:IP存放著當(dāng)前指令的段地址和偏移地址
SS:SP棧頂?shù)亩蔚刂反娣旁赟S中,偏移地址存放在SP中,任意時刻SS:SP指向棧頂元素
5、mov add sub 指令中寄存器 、內(nèi)存單元、與普通數(shù)據(jù)的關(guān)系
mov
寄存器 ->數(shù)據(jù) //注意:段寄存器不能直接mov ,要經(jīng)過普通寄存器AX
寄存器 ->內(nèi)存單元
寄存器 ->寄存器 寄存器->段寄存器
段寄存器 ->寄存器
段寄存器->內(nèi)存單元
內(nèi)存單元->寄存器
內(nèi)存單元->段寄存器
add //結(jié)果放到寄存器中
寄存器 + 數(shù)據(jù)
寄存器 + 內(nèi)存單元
寄存器 + 寄存器
段寄存器 + 寄存器
段寄存器 + 內(nèi)存單元
內(nèi)存單元 +寄存器 //數(shù)據(jù)放到內(nèi)存單元中
sub
寄存器 - 數(shù)據(jù)
寄存器 - 內(nèi)存單元
寄存器 - 寄存器
內(nèi)存單元 -寄存器 //數(shù)據(jù)放到內(nèi)存單元中
6、push與pop指令
push 寄存器
push 段寄存器
push 內(nèi)存單元
pop 寄存器
pop 段寄存器
pop 內(nèi)存單元
注意:CPU執(zhí)行push 指令是:先改變sp,后向SS:SP出傳送。執(zhí)行pop指令是:先讀取SS:SP出的數(shù)據(jù),后改變SP
執(zhí)行push、pop操作,修改的是SP,棧頂?shù)淖兓秶畲鬄椋?0-FFFFH
7、
可執(zhí)行文件加載入內(nèi)存后,cx存放的是程序的長度、
8、[bx]表示一個內(nèi)存單元,它的偏移地址在bx 中,mov ax,[bx]。 或者mov al,[bx]。
9、()①、寄存器、②、段寄存器、③、內(nèi)存單元的物理地址
(ax)表示ax中的內(nèi)容。(al)表示al中的內(nèi)容
例如:
(20000H)表示20000H單元的內(nèi)容 ()中的內(nèi)存單元的地址為物理地址
((ds) *16+(bx)) ds中的內(nèi)容ADR1,bx內(nèi)容 ADR2 內(nèi)存 ADR1*16+ADR2 .ds作段地址,bx作偏移地址。
10、cx 與 loop 指令 實現(xiàn)循環(huán)
mov cx,循環(huán)次數(shù)
s:
循環(huán)執(zhí)行的程序段
loop s
注意::一些乘法可以用循環(huán)相加
11、注意:
①、在匯編源程序中,數(shù)據(jù)不能以字母開頭。 mov ax,0ffffH
②、g命令: “g 0012” 表示執(zhí)行到當(dāng)前代碼段(段地址在CS中)的0012h處
③、p命令: p命令執(zhí)行,debug自動重復(fù)執(zhí)行l(wèi)oop s 和循環(huán)指令,這兩條指令。知道(cx)=0
④、編譯器不能識別 mov ax, [0] 他當(dāng)作 mov ax ,0 處理。 但debug模式下是可以的。
在匯編源程序中需要顯式地給出段地址所在的段寄存器,
mov ax,2000H
mov ds,ax
mov al,ds:[0] ;顯示地給出段寄存器的地址
posted on 2011-11-30 20:35
Yu_ 閱讀(514)
評論(0) 編輯 收藏 引用 所屬分類:
匯編