Đeă cương bà i giạ n g Hợ p ngữ 34
vùng điá chưA A
A CS:100h Đưa vào mã hợp ngữ tái CS:IPĐưa vào mã hợp ngữ tái CS:100h Đưa vào mã hợp ngữ tái CS:100h
Chương 3: Các leơnh laịp và rẽ nhánh 28 Chương 3:CÁCLEƠNH ĐIEĂUKHIEƠN
Moơtchươngtrìnhthođngthườngsẽthựchieơnlaănlượtcácleơnhtheothứthựmà chúngđượcviêtra.Tuynhieđntrongmoơtvàitrườnghợpcaănphạichuyeơnđieăukhieơn đên1phaănkháccụachươngtrình.Trongphaănnàychúngtasẽnghieđncứucácleơnh nhạyvàleơnhlaịpcótínhđêncâutrúccụacácleơnhnàytrongcácngođnngữcâpcao.
3.1 Ví dú veă leơnh nhạy
Đeơhìnhdungđượcleơnhnhạy làmvieơcnhưthênàochúngtahãyviêtchương trìnhinratoànboơtaơpcáckýtựIBM.
TITLE PGR3-1:IBMCHARACTERDISPLAY .MODEL SMALL
.STACK 100H .CODE
MAIN PROC
MOV AH,2 ;hàmxuâtkýtự MOV CX,256 ;sôkýtựcaănxuât
MOV DL,0 ;DLgiữmãASCIIcụa kýtựNUL ;PRINT_LOOP:
INT 21H ;displaycharacter INC DL
Đeă cương bà i giạ n g Hợ p ngữ 33
Unassemble vùng địa chư thành leơnh asm nh asm
Unassemble từ CS:100h đên CS:110h 10h
Unassemble 20 leơnh từ CS:200hA(start) Đưa vào mã hợp ngữ cho 1 địa chư hoaịc 1 A(start) Đưa vào mã hợp ngữ cho 1 địa chư hoaịc 1
được hieơn thịG(=start ) (addr1 G(=start ) (addr1 addr2...addrn) G G=100 G=100 150
Cháy ( go) leơnh từ vị trí Start với các đieơmdừng tái addr1,addr2,addrn dừng tái addr1,addr2,addrn
Thực thi leơnh từ CS:IP đên hêtThực thi leơnh từ CS:100h đên hêt Thực thi leơnh từ CS:100h đên hêt Thực thi leơnh tái CS:100h dừng tái CS:150h
Q Quit debug and return to DOS
R(register)R R
R AX
R AX T T=100 T=100 5 T4
Quét “value” leơnh từ vị trí startTrace leơnh tái CS:IP Trace leơnh tái CS:IP
Trace leơnh tái CS:100h
Trace 5 leơnh baĩt đaău từ CS:100hTrace 4 leơnh baĩt đaău từ CS:IP Trace 4 leơnh baĩt đaău từ CS:IP