Professional Documents
Culture Documents
MC CH
Gip sinh vin kho st cc vn sau: S dng phn mm Emu8086 m phng hot ng ca vi x l 8086.
THIT B S DNG
1. Gii thiu.
Phn mm Emu8086 l phn mm cho php m phng hot ng ca vi x l 8086 bao gm cc cu lnh c bn ca 8086, x l ngt mm, giao tip vi thit b ngoi vi, Khi ng chng trnh Start > All Program > emu8086 > emu8086
V c Ha
Trang 1
New: to file mi
Open: m file c sn
Cc thao tc trn thanh cng c chun cng c th thc hin thng qua menu File v menu Emulator. To v thc thi chng trnh: Nhn New trn thanh cng c s xut hin ca s chn loi file:
V c Ha
Trang 2
Nhn Cancel b qua, ca s son tho ca chng trnh s xut hin. Son chng trnh hp ng v nhn vo nt Emulate bin dch v m phng chng trnh.
Sau khi bin dch thnh cng (khng c li trong chng trnh), Emu8086 s m thm 2 ca s: ca s chng trnh gc v ca s m phng. Chng trnh gc:
V c Ha
Trang 3
Ca s m phng:
V c Ha
Trang 4
Nhn Close quay li ca s son tho. Cu trc chng trnh 8086: .model small .stack 100h .data ;Khai bao du lieu .code main proc mov ax,@data mov ds,ax ;Chuong trinh hop ngu
mov ah,4Ch int 21h main endp ;----- Cac chuong trinh con --Ctc1 proc ; Ma lenh cua chuong trinh con ret Ctc1 endp ;----------End
2. C s l thuyt
2.1.
-
Ngt 21h
Hm 01h: nhp mt k t t bn phm v hin k t nhp ra mn hnh. Nu khng c k t nhp, hm 01h s i cho n khi nhp. Gi: AH = 01h Tr v: AL cha m ASCII ca k t nhp MOV AH,01h INT 21h ; AL cha m ASCII ca k t nhp Hm 02h: xut mt k t trong thanh ghi DL ra mn hnh ti v tr con tr hin hnh Gi AH = 02h, DL = m ASCII ca k t Tr v: khng c MOV AH,02h MOV DL,'A'
Trang 5
V c Ha
INT
21h
Hm 08h: ging hm 01h nhng khng hin th k t ra mn hnh Hm 09h: xut mt chui k t ra mn hnh ti v tr con tr hin hnh, a ch chui c cha trong DS:DX v phi c kt thc bng k t $ Gi AH = 09h, DS:DX = a ch chui Tr v: khng c .DATA Msg MOV LEA INT
DB
'Hello$'
Hm 0Ah: nhp mt chui k t t bn phm (ti a 255 k t), dng phm ENTER kt thc chui - Gi AH = 0Ah, DS:DX = a ch lu chui - Tr v: khng c Chui phi c dng sau: Byte 0: S byte ti a cn c (k c k t Enter) Byte 1: s byte c Byte 2: lu cc k t c .DATA Msg DB DB MOV LEA INT
DB ? 101
101 DUP(?)
; c ti a 100 k t
Hm 0Bh: kim tra phm nhn trn bn phm Gi: AH = 0Bh Tr v: AL = 0FFh nu c nhn phm, AL = 0 nu khng nhn phm Hm 4Ch: kt thc chng trnh MOV AH,4Ch INT 21h
2.2.
Ngt 10h
V c Ha
Trang 6
.model small .stack 100h .data msg db 'Hello$' .code main proc mov ax,@data mov ds,ax
Nhn vo nt Emulate thc hin m phng. Ti ca s m phng, chn menu View > Flags hin th ni dung cc c.
V c Ha
Trang 7
Nhn nt Run thc thi chng trnh v quan st ni dung cc c. Gii thch. Bi 1.2: Thc hin chng trnh cng 2 s v kim tra ni dung cc c: CF, ZF, SF, OF, PF, AF. T rt ra kt lun v mc ch ca cc c ny. 0FFh + 01h 0FFh + 10h 40h + 55h 22h + 8Fh
Trang 8
V c Ha
99h + 7Ch Bi 1.3: Thc hin lnh nhn gia 15h v 41h, 154h v 289Ah. Bi 1.4: Thc hin lnh chia gia 5623h v 14h, 3219154h v 9Ah. Bi 1.5: Thc hin lnh dch tri 1 bit, 2 bit, 3 bit gi tr 25h. Bi 1.6: Thc hin lnh quay tri 1 bit, 2 bit, 3 bit gi tr 25h. Bi 1.7: Thc hin lnh quay tri kt hp vi c carry 1 bit, 2 bit, 3 bit gi tr 25h. Bi 1.8: Thc hin lnh dch phi 1 bit, 2 bit, 3 bit gi tr 25h. Bi 1.9: Thc hin lnh quay phi 1 bit, 2 bit, 3 bit gi tr 25h. Bi 1.10: Thc hin lnh quay phi kt hp vi c carry 1 bit, 2 bit, 3 bit gi tr 25h. Bi 1.11: S dng lnh IN nhp d liu v lnh OUT xut d liu ra thit b ngoi vi c a ch 110. Ch thm vo chui #start=simple.exe# u chng trnh kim tra kt qu.
3.2. S dng ngt 21h v ngt 10h Bi 1.12: Dng hm 09h xut chui ra mn hnh: .model small .stack 100h .data msg db 'Hello$' .code main proc mov ax,@data mov ds,ax
mov ah,09h lea dx,msg int 21h exit: mov ah,4Ch int 21h main endp
V c Ha
Trang 9
;----------End Bi 1.13: B du $ cui chui Hello, thc hin li chng trnh v nhn xt kt qu. Bi 1.14: Thc hin ging nh bi 1.12 nhng thc hin lin tc cho n khi nhn mt phm bt k trn bn phm th dng. Gi : dng hm 0Bh kim tra phm nhn, nu c nhn phm th kt thc chng trnh. .model small .stack 100h .data msg db 'Hello$' .code main proc mov ax,@data mov ds,ax
mov ah,0Bh int 21h cmp al,00h jne exit ; Xut chui exit: mov ah,4Ch int 21h
V c Ha
Trang 10
end Bi 1.15: Xut chui Hello ra mn hnh ti hng 10, ct 10. Gi : dng hm 02h ca ngt 10h chuyn to trc khi xut chui. Bi 1.16: Nhp mt k t t bn phm v xut k t va nhp ra mn hnh ti hng 11, ct 10. .model small .stack 100h .data msg db 'Hello$' .code main proc mov ax,@data mov ds,ax
; Nhp k t t bn phm
V c Ha
Trang 11
; Xut k t
Bi 1.17: Nhp mt k t t bn phm v xut ra mn hnh dng ch hoa. Gi : thm mt on chng trnh kim tra k t nhp, nu l k t ch thng th chuyn thnh ch hoa ri xut ta mn hnh. cmp al,'a' jb next cmp al,'z' ja next sub al,20h next: Bi 1.18: Nhp lin tc cc k t, xut ra mn hnh dng ch hoa v kt thc chng trnh khi nhn phm ESC. Gi : sau khi nhp th kim tra k t va nhp, nu l ESC th thot (m ASCII ca phm ESC l 27 hay 1Bh). cmp al,27 je exit
V c Ha Trang 12
exit: mov ah,4Ch int 21h Bi 1.19: Dng hm 02h ca ngt 21h xut chui: .model small .stack 100h .data msg db 'Hello$' .code main proc mov ax,data mov ds,ax
inc si jmp lap exit: mov ah,4Ch int 21h main endp end main
V c Ha
Trang 13
Bi 1.20: Dng hm 02h ca ngt 21h xut chui Hello theo chiu thng ng bt u ti hng 1, ct 10. Gi : dng hm 02h ca ngt 10h di chuyn to con tr sau khi xut mt k t.
H e l l o
Bi 1.23: Di chuyn k t A theo chiu ngang t tri sang phi bt u ti hng 1, ct 1 v kt thc ti hng 1, ct 40. .model small .stack 100h .data .code main proc
V c Ha Trang 14
mov dh,1 mov dl,1 lap: mov ah,02h int 10h ; Gi hm 02h ca ngt 10h ; chuyn to ; Hng 1, ct 1
push dx mov dl,'A' mov ah,02h int 21h pop dx ; Gi hm 02h ca ngt 21h ; xut k t
call delay
; To thi gian tr
mov ah,02h int 10h push dx mov dl,' ' mov ah,02h int 21h pop dx ; Xut k t khong trng ; xo k t c
inc dl cmp dl,41 jne lap exit: mov ah,4Ch int 21h
V c Ha
Trang 15
main endp delay proc push cx mov cx,0fh loop $ pop cx ret delay endp end main Bi 1.24: Xo on chng trnh in m trong bi 1.23, thc thi chng trnh v kim tra kt qu. Bi 1.25: Thc hin chng trnh 1.23 nhng theo chiu thng ng t trn xung bt u ti hng 1, ct 1 v kt thc ti hng 15, ct 1. Bi 1.26: Thc hin chng trnh 1.23 nhng theo chiu ngang t phi sang tri bt u ti hng 1, ct 40 v kt thc ti hng 1, ct 1. Bi 1.27: Thc hin chng trnh 1.23 nhng theo chiu thng ng t di ln bt u ti hng 15, ct 1 v kt thc ti hng 15, ct 1. Bi 1.28: Thc hin chng trnh 1.23 nhng theo ng cho nh hnh v.
Hng 1, ct 1
Hng 15, ct 15
Bi 1.29: Thc hin chng trnh 1.23 nhng theo ng cho nh hnh v.
Hng 1, ct 1
Hng 15, ct 15
Bi 1.30: Thc hin chng trnh 1.23 nhng theo ng cho nh hnh v.
Hng 1, ct 15
Bi 1.31: Thc hin chng trnh 1.23 nhng theo ng cho nh hnh v.
Hng 1, ct 15
Hng 15, ct 1
Bi 1.32: Thc hin chng trnh 1.23 nhng di chuyn k t nh hnh v, bt du ti hng 1, ct 1.
Hng 1, ct 1 Hng 1, ct 10
Hng 10, ct 1
Hng 10, ct 10
Hng 20, ct 1
Bi 1.33: Nhp mt chui t bn phm v xut chui ra mn hnh bng cch dng hm 02h ca ngt 21h. .model small .stack 10h .data msg db 101 db ? db 101 dup(?) .code main proc mov ax,@data mov ds,ax ; Chui c ti a 100 k t ; S k t thc t
V c Ha
Trang 17
; V tr lu k t nhp
inc si jmp lap exit: mov ah,4Ch int 21h main endp end main Bi 1.34: Thay gi tr ban u ca SI ti dng in m trong bi 1.33 bng gi tr 0, thc thi chng trnh v quan st kt qu. Bi 1.35: Nhp mt chui t bn phm v xut chui ra mn hnh bng cch dng hm 09h ca ngt 21h. Lu l hm 09h dng xut chui trong chui bt buc phi kt thc bng k t $ nn phi thm k t ny vo cui chui trc khi xut. .model small .stack 10h .data msg db 101 db ? db 101 dup(?) .code main proc mov ax,@data mov ds,ax
V c Ha
Trang 18
; c s lng k t nhp
; Kt qu cha vo SI
exit: mov ah,4Ch int 21h main endp end main Bi 1.36: B dng in m trong bi 1.35, thc thi chng trnh v quan st kt qu. Bi 1.37: Thc hin bi 1.32 nhng thay k t A bng chui LAP TRINH HOP NGU. Gi : Thay th hm 02h trong bi 1.32 bng hm 09h (thm k t $ vo cui chui).
V c Ha
Trang 19