Professional Documents
Culture Documents
LP TRNH H THNG
Bin son:
ThS. Nguyn Ha Duy Khang Ks. Trn Hu Danh
-HCT5-2008
NI DUNG
Gii thiu BI 1: NHP MN HP NG ............................................................................ 1 1. Mc tiu ................................................................................................................ 1 2. Kin thc cn chun b ......................................................................................... 1 3. Ni dung thc hnh .............................................................................................. 1 3.1. Kho st lnh Intel-8086 ........................................................................ 1 3.2. Cu trc chng trnh dng EXE ........................................................... 1 3.3. Vit chng trnh n gin .................................................................... 3 4. Bi tp ngh ...................................................................................................... 3 BI 2: XUT NHP K T ................................................................................ 5 1. Mc tiu ................................................................................................................ 5 2. Kin thc cn chun b ......................................................................................... 5 3. Ni dung thc hnh .............................................................................................. 5 3.1. In mt k t ra mn hnh ........................................................................ 5 3.2. In chui k t ra mn hnh ..................................................................... 6 3.3. Nhn mt k t t bn phm................................................................... 6 3.4. Nhn chui k t t bn phm ................................................................ 7 4. Bi tp ngh ...................................................................................................... 8 BI 3: CU TRC R NHNH VNG LP ................................................. 9 1. Mc tiu ................................................................................................................ 9 2. Tm tt l thuyt .................................................................................................. 9 3. Ni dung thc hnh .............................................................................................. 12 3.1. Cu trc r nhnh ................................................................................... 12 3.2. Cu trc vng lp ................................................................................... 13 4. Bi tp ngh ...................................................................................................... 13 BI 4: NHP XUT S DNG BIN-HEX-DEC ............................................... 15 1. Mc tiu ................................................................................................................ 15 2. Kin thc cn chun b ......................................................................................... 15 3. Ni dung thc hnh .............................................................................................. 15 3.1. Nhp xut s nh phn ............................................................................ 15 3.2. Nhp xut s thp lc phn .................................................................... 16 3.3. Xut s thp phn nguyn dng ........................................................... 18 4. Bi tp ngh ...................................................................................................... 19 BI 5: X L TP TIN ........................................................................................ 21 1. Mc tiu ................................................................................................................ 21 2. Kin thc cn chun b ......................................................................................... 21 3. Ni dung thc hnh .............................................................................................. 21 3.1. To tp tin mi ....................................................................................... 21
Thc hnh lp trnh h thng 3.2. Ghi ni dung tp tin ................................................................................ 22 3.3. c ni dung tp tin ............................................................................... 23 3.4. Xa tp tin ............................................................................................. 25 3.5. i tn tp tin ........................................................................................ 26 4. Bi tp ngh ...................................................................................................... 27 BI 6: X L CHUI K T............................................................................. 28 1. Mc tiu ................................................................................................................ 28 2. Kin thc cn chun b ......................................................................................... 28 3. Ni dung thc hnh .............................................................................................. 28 3.1. So snh chui.......................................................................................... 28 3.2. Di chuyn chui...................................................................................... 30 3.3. D tm trong chui ................................................................................. 31
ii
Gii Thiu
Thc hnh Lp trnh H Thng gip cho sinh vin vit c chng trnh bng ngn ng Assembly trn my tnh PC. Gio trnh ny ch hng dn sinh vin nhng k nng rt c bn trong vic lp trnh bng Assembly nh: S dng trnh bin dch hp ng trong mi trng Windows, bin dch, sa li v lin kt, kho st tp lnh, cc ngt n gin ca H iu hnh DOS. vn dng v nng cao c k nng lp trnh h thng bng Hp ng, i hi sinh vin phi n lc rt nhiu trong vic t hc, c thm ti liu b sung nhng kin thc nht nh v phn cng my tnh cng nh nguyn ly vn hnh ca cc thit b ngoi vi c lin quan, nh: My in, h vi iu khin, cng vo ra ni tip/ song song .... Thi lng ca mn hc c gii hn, nn cc bi thc hnh c t chc thnh cc ch sau y, mi ch thc hnh trong 1 bui (5 tit): Bi 1: Nhp mn hp ng Bi 2: Xut nhp k t. Bi 3: Cu trc r nhnh Vng lp Bi 4: X l k t - K s Bi 5: X l tp tin Bi 6: Nhp xut s BIN-HEX-DEC thc hnh t hiu qu cao, sinh vin cn phi chun b cho mi bi trc khi vo bt u thc hnh. Mun t c iu ny, sinh vin phi tun th phng php hc nh sau: Trc khi vo thc hnh: Nm c mc tiu ca bi thc hnh. Xem li cc kin thc cn chun b c nu ra cho mi bi thc hnh. Nm c cc ni dung cn phi lm trong bui thc hnh. Tuyt i tun th thc hnh theo th t ca ni dung thc hnh. Hon thnh cc vn v tr li c cc cu hi t ra trong phn trc mi chuyn sang thc hnh phn sau. Quan st hin tng, nhng thay i, xem xt nh gi kt qu sau mi thao tc thc hnh. Lp li cc thao tc thc hnh nhiu ln, tm cch gii quyt khc sau khi thc hnh theo yu cu cho mi vn . So snh, nhn xt cc cch gii quyt khc nhau. i chiu tng mc tiu ca bi thc hnh vi nhng g thc hnh c. Nu mc tiu no cha thnh tho th phi tm cch lp li thc hnh nm c mc tiu vng chc hn.
Trong qu trnh bin son, khng th trnh khi s xut, hy chn thnh gp chnh sa gio trnh ngy cng hon chnh hn. ThS. Nguyn Ha Duy Khang Email: nhdkhang@ctu.edu.vn
Bi 1 Nhp mn hp ng
Bi 1: Nhp Mn Hp Ng
1. MC TIU
S dng c cng c Emu8086 kho st cc lnh ca Intel-8086. S dng c cc chc nng c bn ca cng c RadASM nh: Son tho, Hp dch (Assemble), Lin kt (Link) v Chy chng trnh (Run). Vit ng cu trc ca chng trnh hp ng dng ti nh (EXE). c hiu v sa li chng trnh. Cc thao tc c bn trn h iu hnh Windows. Cu trc chng trnh hp ng dng EXE. Qui trnh Son tho Dch chng trnh. Cc lnh n gin ca Intel-8086 thng dng nh: MOV, ADD, SUB, INC, DEC, AND, OR. (Xem c php trong gio trnh)
Thc hin tng lnh, sau mi lnh ghi li kt qu cc thanh ghi trong ngoc i chiu vi kt qu d on trn v gii thch. 3.1.2. Thc hnh tng t nh cu 3.1.1 i vi on lnh sau: MOV ADD DEC SUB AND AX, 8086 AL, 3 AX AH, 10h AX, 0FF0h ; AX 8086 (AH = ?, AL = ?) ; AL AL + 3 (AL = ?, AX = ?) ; AX AX 1 (AH = ?, AL = ?, AX = ?) ; AH AH 10h (AH = ?, AL = ?, AX = ?) ; AX AX and 0FF0h (AX = ?)
3.1.3. Sinh vin ch ng lp li t nht 1 ln cu 3.1.1 v 3.1.2 vi cc gi tr ton hng khc trong mi dng lnh.
Bi 1 Nhp mn hp ng - Trong c nhng lnh m sinh vin cha hc n, iu ny khng cn quan tm, iu cn quan tm trong bi thc hnh ny l Cu trc chng trnh hp ng. - t tn file chng trnh ngun l HELLO.ASM DSEG SEGMENT ; To on DSEG chuoi DB Hello World!$ ; Khai bo bin chui DSEG ENDS CSEG SEGMENT ; To on CSEG ASSUME CS: CSEG, DS: DSEG ; CSEG l on lnh, DSEG l d liu begin: MOV AX, DSEG ; Khi ng a ch on d liu MOV DS, AX MOV AH, 09h ; AH 09h LEA DX, chuoi ; DX a ch offset bin chuoi INT 21h ; gi ngt 21h MOV AH, 01h ; AH 01h INT 21h ; gi ngt 21h MOV AH, 4Ch ; Thot chng trnh INT 21h CSEG ENDS END begin a. Hp dch chng trnh HELLO.ASM v kim tra xem file HELLO.OBJ c to ra cha. b. Lin kt chng trnh HELLO, kim tra xem file HELLO.EXE c to ra cha c. Chy chng trnh HELLO.EXE, quan st trn mn hnh, chng trnh trn lm g? d. Thay i Hello World!$ thnh Wellcome to Assembly$. Lm li cc bc a, b v c. Chng trnh trn lm g? 3.2.2. [HELLO2.ASM] Sa file HELLO.ASM trn sao cho ging ht nh chng trnh sau v t tn li l HELLO2.ASM (ch khc nhng ch in nghing) - Lu : Chng trnh s c vi li a. Dch chng trnh HELLO2.ASM, ghi li cc thng tin v li: S li, nhng li g, trn dng no? b. Kim tra xem file HELLO2.OBJ c to ra khng? Ti sao? c. Sa tng li mt t dng trn xung, ri lp li cu a cho n khi no ht li. d. Lin kt chng trnh HELLO2. Kim tra xem c file HELLO2.EXE khng? e. Chy chng trnh HELLO2.EXE, so snh kt qu vi 3.1.1.d
Bi 1 Nhp mn hp ng DSEG SEGMEMT ; To on DSEG chuoi DW Wellcome to Assembly$ ; Khai bo bin chui DSEG ENDS CSEG SEGMENT ; To on CSEG ASSUME CS: CSEG, DS: DSEG ; CSEG l on lnh, DSEG l d liu begin: MOV BX, SSEG ; Khi ng a ch on d liu MOV DS, BX MOV AH, 09h ; AH 09h LEA DH, chuoi ; DX a ch offset bin chuoi INT 21h ; gi ngt 21h MOV AH, 01h ; AH 01h INT 21h ; gi ngt 21h MOV AH, 4Ch ; Thot chng trnh INT 21h CSEG ENDS END Begin
4. BI TP NGH:
4.1. Dng Emu8086 kho st cc lnh khc trong tp lnh ca Intel-8086. 4.2. T tm hiu thm nhng chc nng khc ca Emu8086
Bi 1 Nhp mn hp ng 4.3. Vit tng chng trnh tnh cc biu thc sau: (Phi vit theo kiu s dng bin cha ton hng v kt qu, SV t t tn bin theo ca mnh) a. 15h * 250 b. 16 * 0AF1h c. 300 * 400 d. 1000 100 e. 1000 100h f. 3AB45Eh 0A1h
4.4. S dng Emu8086 kim chng kt qu ca cc chng trnh vit cho 4.3.
Bi 2 Xut nhp k t
Bi 2: Xut Nhp K T
1. MC TIU
S dng c cc ngt mm vit c chng trnh: in k t - chui k t ln mn hnh v nhp k t - chui k t t bn phm. Hiu c cch qun l k t v k s trong Hp ng. Kt qu bi thc hnh 1. Cc hm 01h, 02h, 06h, 07h, 08h, 09h, 0Ah ca ngt 21h. Bng m ASCII.
CSEG
Dch sa li (nu c) v chy chng trnh xem kt qu in ra mn hnh. Cc dng lnh no thc hin chc nng in k t B ra mn hnh? Cc dng lnh khc dng lm g? Sa li chng trnh trn in ra mn hnh k t D. Chy chng trnh kim chng kt qu. Vit chng trnh in ra mn hnh s 9 Vit chng trnh in ra mn hnh s 89 Hai dng lnh 6 v 7 c chc nng g trong chng trnh? Nu khng c 2 dng lnh y th chng trnh thc hin nh th no? (Th xa b 2 dng lnh y ri chy chng trnh, quan st kt qu pht hin chc nng)
Bi 2 Xut nhp k t
DSEG SEGMENT chuoi DB Chao sinh vien nganh Cong Nghe Thong Tin.$ DSEG ENDS CSEG SEGMENT ASSUME CS: CSEG, DS: DSEG start: mov ax, DSEG mov ds, ax mov ah, 09h ; Hm 9, in chui k t ra mn hnh lea dx, chuoi ; dl cha k t cn in int 21h ; gi ngt thc hin mov ah, 08h int 21h mov ah, 4Ch ; thot khi chng trnh int 21h CSEG ENDS END start
Bi 2 Xut nhp k t
DSEG SEGMENT tbao DB Hay go vao 1 phim: $ DSEG ENDS CSEG SEGMENT ASSUME CS: CSEG, DS: DSEG start:mov ax, DSEG mov ds, ax mov ah, 09h ; In cu thng bo ra mn hnh lea dx, tbao int 21h mov ah, 01h ; Ham 1, nhan ky tu tu ban phim int 21h ; goi ngat thuc hien ham mov ah, 4Ch ; tro ve he dieu hanh int 21h CSEG ENDS END start
DSEG SEGMENT max DB 30 len DB 0 chuoi DB 30 dup(?) tbao DB Hay go vao 1 chuoi: $ DSEG ENDS CSEG SEGMENT ASSUME CS: CSEG, DS: DSEG start: mov ax, DSEG mov ds, ax mov ah, 09h ; In cu thng bo ra mn hnh lea dx, tbao int 21h mov ah, 0Ah ; Ham 0Ah, nhap chuoi ky tu tu ban phim lea dx, MAX ; dx chua dia chi vung dem ban phim int 21h ; goi ngat thuc hien ham mov ah, 4Ch ; tro ve he dieu hanh int 21h CSEG ENDS END start
Bi 2 Xut nhp k t Dch, sa li v thi hnh chng trnh trong tng trng hp sau y: 1. Nhp t bn phm chui t hn 30 k t. 2. Nhp t bn phm chui nhiu hn 30 k t. Gi tr bin len trong mi trng hp l bao nhiu? Ti sao khng th nhp nhiu hn 30 k t? Chui k t nhp vo c lu tr bin no? Sa chng trnh c th nhp nhiu hn 30 k t (60 k t chng hn). Tng qut, kh nng ti a ca hm 0Ah, ngt 21h l nhn chui bao nhiu k t?
4. BI TP NGH
4.1. Vit chng trnh s dng hm 7, ngt 21h nhn 1 k t t bn phm, dng 1 bin lu tr k t nhn c (do sinh vin t t tn bin), sau s dng hm 2, ngt 21h in ra mn hnh k t nhn c ang lu trong bin y. Chng trnh phi c cc cu thng bo nhp v xut. V d: Hay go 1 phim: B Ky tu nhan duoc la: B 4.2. Sa li chng trnh 4.1 sao cho khng cn s dng bin lu tr k t m kt qu chy chng trnh vn khng thay i. 4.3. Vit chng trnh nhn 1 k t t bn phm, sau in ra mn hnh k t k trc v k sau ca k t va nhp V d: Hay go 1 phim: B Ky tu ke truoc : A Ky tu ke sau : C 4.4. Vit chng trnh cho php nhp t bn phm tn ca 1 ngi, sao in ra mn hnh chui c dng nh sau: Xin chao <tn__nhp> V d: Khi chy chng trnh, nhp vo l: Nguyen Hua Duy Khang Chui in ra mn hnh s l: Xin chao Nguyen Hua Duy Khang
Bi 3 Cu trc r nhnh Vng lp JMP <nhn> ; (near jump). Kiu ny nhy ty trong phm vi segment. V d: JMP Calculate JMP FAR PTR <nhn> ; (far jump). Kiu ny nhy n bt k ch no. V d: JMP FAR PTR Calculate JMP <con tr 2 byte> ; (near indirect jump). Khi thc hin, thanh ghi PC s c gn bng gi tr lu ti a ch ny. C th kt hp dng vi nh v ch s. V d: myPointer DW Prepare, Calculate, Check, Output ... MOV BX, 2 ; ch s trong mng con tr SHL BX, 1 ; nhn i JMP myPointer[BX] ... Prepare: ; cng vic 0 ... Calculate: ; cng vic 1 ... Check: ; cng vic 2 ni cn nhy n ... Output: ; cng vic 3 ... JMP <con tr 4 byte> ; (far indirect jump). Tng t trng hp trn, nhng con tr gm c segment v offset. Ch khc khai bo con tr JMP <thanh ghi 2 byte> ; (indirect jump via regs). Nhy n a ch lu trong thanh ghi AX. V d: MOV AX, offset Calculate ... JMP AX ; PC AX
10
Bi 3 Cu trc r nhnh Vng lp phi c bit lu ton hng trong php so snh l s c du (signed) hay khng c du (unsigned) la chn lnh cho ph hp. V d: MOV AH,AL ; AL hin bng 128 CMP AH,1 JGE Greater ; AH > 1 nhng khng nhy ???? ... Greater: V d: nu AL l s nguyn khng du th on chng trnh trn phi sa li nh sau: MOV AH,AL CMP AH,1 JAE Greater ... Greater: Mt s lnh nhy c iu kin thng dng: Lnh JB JNAE JAE JNB JBE JNA JA JNBE JE JZ JNE JNZ Ngha Nhy nu nh hn (Jump if Below) Nhy nu khng ln hn hoc bng Nhy nu ln hn hoc bng (Jump if Above or Equal) Nhy nu khng nh hn Nhy nu nh hn hoc bng (Jump if Below or Equal) Nhy nu khng ln hn Nhy nu ln hn (Jump if Above) Nhy nu khng nh hn hoc bng Nhy nu bng (Jump if Equal) Nhy nu bng (Jump if Zero) Nhy nu khng bng (Jump if Not Equal) Nhy nu khng bng (Jump if Not Zero) iu Kin CF = 1 CF = 0 CF = 1 v ZF = 1 CF = 0 v ZF = 0 ZF = 1 ZF = 0
2.5. Lnh lp
Bng cch dng cc lnh nhy c th to ra vng lp. Tuy nhin, vit chng trnh tin li v ngn gn, c th dng thm cc lnh lp nh LOOP, LOOPZ, C php: LOOP <Label> t ng gim CX mt n v, sau kim tra xem CX c bng 0, nu khng bng th nhy n nhn <Label> C php: LOOPZ <Label> t ng gim CX mt n v, sau kim tra xem CX c bng 0 hoc c ZF c bt khng (ZF=1), nu c hai iu ny khng xy ra th nhy n nhn <Label>
11
Bi 3 Cu trc r nhnh Vng lp V d: Nhp mng A gm 10 k t MOV SI, 0 ; ch s mng MOV CX, 10 ; s ln lp LAP: MOV AH, 1 ; nhp k t INT 21H MOV A[SI], AL INC SI
in "Ky tu thuong"
tr v h iu hnh
Dch v chy CT nhng trng hp khc nhau xem kt qu trn mn hnh. V lu iu khin ca chng trnh.
12
Bi 3 Cu trc r nhnh Vng lp Ti sao cn phi c lnh JMP EXIT? Nu khng c lnh y th chng trnh thc hin nh th no? Chy chng trnh kim chng. Thay lnh JA NHAN bng lnh JNA NHAN. Sa chng trnh sao cho kt qu khng thay i. Khi k t nhp vo khng phi l ch ci th kt qu in ra mn hnh l g? Ti sao? Xem chng trnh in ra mn hnh ln lt cc k t t A n Z c vit nh sau. Hy son tho v t tn tp tin l BAI_3B.ASM. Dch v chy chng trnh xem kt qu trn mn hnh. Vng lp trong chng trnh bao gm on lnh no? Vit theo kiu while do hay repeat ... until hay for? V lu chng trnh. Sa chng trnh in ra mn hnh ln lt cc k t t 'Z' n 'A'. Tip tc sa chng trnh sao cho gia cc k t c 1 khong trng (Z Y ....B A) Dng lnh LOOP vit li chng trnh BAI_3B.ASM theo cu trc vng lp for.
CSEG SEGMENT ASSUME CS: CSEG start:mov dl, 'A' ; nhan:mov ah, 02h ; int 21h inc dl ; cmp dl, 'Z' ; jna nhan ; mov ah, 08h ; int 21h mov ah, 4Ch int 21h CSEG ENDS END start
DL cha k t u tin 'A' in k t trong DL ra mn hnh DL cha k t k cn in So snh DL vi 'Z' Nu <= 'Z' th tip tc in Nu > 'Z' th thot (khng in tip)
4. BI TP KIM TRA:
4.1 Vit chng trnh cho nhp 1 k t t mn hnh v xut cu thng bo tng ng sau: - Nu k t nhp l S hay s th in ra Good morning! - Nu k t nhp l T hay t th in ra Good Afternoon! - Nu k t nhp l C hay c th in ra Good everning! 4.2 Vit li chng trnh BAI_3A.ASM sao cho chng trnh c th phn bit c 3 loi k t nhp t bn phm: "K t HOA", "k t thng" v "k t khc".
13
Bi 3 Cu trc r nhnh Vng lp 4.3 Vit chng trnh nhp t bn phm 1 k t thng. Sau in ra mn hnh ln lt cc k t t k t nhn c n 'z' sao cho gia cc k t c 1 khong trng. 4.4 Khng dng hm 0Ah/21h, hy dng lnh lp vit chng trnh nhp vo 1 chui k t. Sau khi nhp xong m xem chui c bao nhiu k t. In ra mn hnh chui nhn c v s k t c trong chui. V d: S = "Hello world !" ==> S k t trong chui l 13. 4.5 Vit chng trnh cho php nhp vo mt chui bt k. Sau : - i tt c k t thng thnh k t hoa v in ra mn hnh. - i tt c k t hoa thnh k t thng v in ra mn hnh. V d: S = weLcOme To AssEmblY In ra: welcome to assembly - WELCOME TO ASSEMBLY 4.6 Nhp vo 2 chui s, i 2 chui thnh s, sau cng hai s, i ra chui v xut chui tng. V d: S1 = "123" => N1 = 123 S2 = "456" => N2 = 456 N = N1 + N2 = 123 + 456 = 579 => S = "579" (xut S ra mn hnh) 4.7 Nhp 2 s nguyn dng A, B. Tnh A/B, A*B (khng dng lnh DIV, MUL) v in ra mn hnh kt qu. V d: A=18, B=3 Tnh A/B: 18 - 3 - 3 - 3 - 3 - 3 - 3 = 0, vy A/B = 6 (tng tr B cho n khi A = 0). Tnh A*B = 18 + 18 + 18 = 54
14
28
Bi 4 Nhp xut s dng BIN-HEX-DEC nhap:MOV AH, 01h INT 21h CMP AL, 0Dh JZ exit SHL BL, 1 SUB AL, 30h ADD BL, AL LOOP nhap exit:RET bin_in ENDP bin_out PROC MOV CX, 8 xuat:MOV DL, 0 SHL BL, 1 RCL DL, 1 ADD DL, 30h MOV AH, 02h INT 21h LOOP xuat RET bin_out ENDP CSEG ENDS END begin ; Hm nhp k t ; ; ; ; ; nu l phm Enter th thi nhp khng phi Enter th i sang bit Dch tri BL 1 bit K s - 30h = s Chuyn bit t AL sang BL lu tr
; ; ; ; ;
Xut 8 bit trong BL ra M.Hnh CF cha MSB, xut ra mn hnh a CF vo LSB ca DL S + 30h = K s In ra mn hnh
Son tho, Bin dch v cho chy file BAI_6A.ASM kim tra kt qu. Sa chng trnh trn thnh BAI_6A1.ASM sao cho c th nhp v xut s nh phn 16 bit. Vit li chng trnh trn nhp 1 k t t bn phm, sau in ra mn hnh m ASCII ca k t nhn c dng nh phn.
3.2. Nhp xut thp lc phn: Chng trnh sau y cho php nhp 1 k t t bn phm, sau in ra mn hnh m ASCII ca k t nhn c dng thp lc phn Son tho, Bin dch v cho chy file BAI_6B.ASM kim tra kt qu. Vit li chng trnh trn nhp 2 s thp lc phn 8 bit A v B, sau in ra mn hnh kt A + B dng thp lc phn.
MACRO chuoi MOV AH, 9h LEA DX, chuoi INT 21h ENDM DSEG SEGMENT msg1 DB "Hay nhap 1 ky tu: $" msg2 DB "Ma ASCII o dang Hex: $"
inchuoi
29
Bi 4 Nhp xut s dng BIN-HEX-DEC xdong DB 10, 13, $ kytu DB ? DSEG ENDS CSEG SEGMENT ASSUME CS:CSEG, DS:DSEG begin: MOV AX, DSEG MOV DS, AX inchuoi msg1 MOV AH, 01h INT 21h MOV kytu, AL ; ct k t nhn c inchuoi xdong inchuoi msg2 MOV BH, kytu ; K t cn in CALL hex_out MOV AH, 02 ; in ra k t h sau s Hex MOV DL, h INT 21h MOV AH, 01 INT 21h MOV AH, 4Ch ; thoat khi chng trnh INT 21h hex_out PROC
hex_out
MOV CX, 4 xuat:PUSH CX MOV CL, 4 MOV DL, BH SHR DL, CL CMP DL, 09h JA kytu ADD DL, 30h JMP inra kytu:ADD DL, 37h inra:MOV AH, 02h INT 21h SHL BX, CL POP CX LOOP xuat RET
ENDP
CSEG ENDS END begin 3.3. Xut s thp phn nguyn dng: Chng trnh sau y cho php nhp 1 k t t bn phm, sau in ra mn hnh m ASCII ca k t nhn c dng thp phn.
30
Bi 4 Nhp xut s dng BIN-HEX-DEC Son tho, Bin dch v cho chy file BAI_6C.ASM kim tra kt qu. c th tc DEC_OUT tm hiu gii thut xut gi tr trong AX ra mn hnh dng thp phn. T a ra gii thut nhp s thp phn t bn phm. Vit li chng trnh trn nhp 2 s thp phn A v B c 2 ch s, sau in ra mn hnh kt qu A + B dng thp phn. Nhp xut s thp phn M nh th no?
inchuoi
MACRO chuoi MOV AH, 9h LEA DX, chuoi INT 21h ENDM DSEG SEGMENT msg1 DB "Hay nhap 1 ky tu: $" msg2 DB "Ma ASCII o dang Dec: $" xdong DB 10, 13, $ kytu DB ? DSEG ENDS CSEG SEGMENT ASSUME CS:CSEG, DS:DSEG begin: MOV AX, DSEG MOV DS, AX inchuoi msg1 MOV AH, 01h INT 21h MOV kytu, AL ; ct k t nhn c inchuoi xdong inchuoi msg2 XOR AX, AX MOV AL, kytu ; K t cn in CALL dec_out MOV AH, 01 INT 21h MOV AH, 4Ch ; thoat khi chng trnh INT 21h dec_out PROC
XOR CX,CX ; CX m s ch s thp phn MOV BX,10 chia10: XOR DX,DX DIV BX ; DX:AXBX => AX: Thng, DX: s d PUSH DX ; Ct s d vo stack INC CX CMP AX, 0 JNZ chia10 ; nu AX>0 th chia tip cho 10 inra: MOV AH,2 ; in ra mn hnh POP DX ; ly ch s thp phn
ThS. Nguyn Ha Duy Khang, Ks. Trn Hu Danh
31
dec_out
; i thnh k s
4. Bi tp kim tra:
4.1. Vit chng trnh nhp 2 s nh phn 16 bit A v B. Sau in ra mn hnh cc kt qu dng nh phn: A + B, A B, A and B, A or B. V d: Nhp s nh phn A: 10101010 Nhp s nh phn B: 01010101 A + B = 11111111 A and B = 00000000 A B = 01010101 A or B = 11111111
4.2. Vit chng trnh nhp 1 k t t bn phm, sau in ra mn hnh m ASCII ca k t nhn c dng thp lc phn, thp phn v nh phn. V d: Nhp 1 k t: A M ASCII dng Hex: 41h M ASCII dng Dec: 65 M ASCII dng Bin: 01000001b 4.3. Vit li chng trnh bi 4.1 nhng 2 s A v B c nhp theo dng thp lc phn. Cc kt qu c in ra mn hnh dng nh phn. 4.4. Vit li chng trnh bi 4.1 nhng 2 s A v B c nhp theo dng thp phn. In cc kt qu dng thp phn: A + B, A B. 4.5. Vit chng trnh tnh giai tha n! Vi n l s nguyn dng nhp t bn phm. In kt qu ra mn hnh dng thp phn. Cho bit, kh nng ca 8086 tnh c n ln nht l bao nhiu?
32
Bi 5 X l tp tin
Bi 5: X L Tp Tin
1. Mc Tiu:
Vit c cc chng trnh x l tp tin nh to tp tin, xa tp tin, ghi tp tin, c ni dung ca tp tin.
Bi 5 X l tp tin Ti sao trong trng hp ny, chng ta khng phi dng hm 08h ca int 21h ng trc hm 4ch ca int 21h ? Ti sao phi ct th file. Nu chng ta khng cn ng file th chng ta c cn ct th file hay khng ? Trong on chng trnh mu trn c cn thit phi ng tp tin hay khng ? C th b bin thefile trong on chng trnh mu trn khng ?. Khi chng ta phi dng cc lnh g thay th iu . Nu c thay i, hy bin dch v cho chy chng trnh kim chng li kt qu. Hy sa i file BAI_5A.ASM v lu vi tn BAI_5A1.ASM c th thc hin c yu cu sau: to mt tp tin mi, tn tp tin c nhp t bn phm. Gi : dng hm 0ah ca int 21h nhp vo tn file, ch cui chui cha tn file phi c zero, nhng khi dng hm 0ah th chng ta khng th no nhp zero vo cui chui c, nu ta nhp k t 0 vo th l m ascii ca k t 0 ch khng phi l zero (con s 0). Do , thc hin c iu ny chng ta hy dng gii thut a 0 v cui chui nh sau:
xor cx, cx ; dua zero ve cuoi chuoi mov cl, len ;khai bao bien de dung ham 0ah cua int 21h dang lea bx, tenfile; max db 250 ; so ky tu toi da duoc nhap mov dl,0 ; len db ? ; chieu dai chuoi da nhap mov [bx], dl ; tenfile db 250 dup(?); chua noi dung duoc nhap
3.2. Ghi ni dung ca bin string1 vo mt tp tin mi c tn trong th mc v a vi ng dn nh sau: D:\TT_ASM\DATA.TXT. Son tho nh on chng trnh mu pha di v lu vi tn l BAI_5B.ASM. Bin dch v cho chy file BAI_5B.ASM kim tra v xem kt qu. (vo D:\TT_ASM xem tp tin DATA.TXT c trong hay cha v c ni dung hay cha ?, nu c l OK.) Xem xt on chng trnh mu, hy a ra gii thut ghi ni dung ca vng d liu vo mt tp tin va to. Lnh len db $ - string1 c dng lm g ?. Lnh XOR CX, CX c ngha g? Sau khi thc hin xong lnh ny, thanh ghi CX c gi tr bng bao nhiu? C th thay th n bng lnh no khc c khng ? Ti sao dng lnh MOV CL, LEN m khng dng MOV CX, LEN hay MOV CH, LEN ? Khi dng lnh MOV CX, LEN th cn phi thay i khai bo bin len nh th no ? nu khng thay i th s c vn g xy ra hay khng ? Hy thay i, bin dch v chy chng trnh kim chng li kt qu so vi chng trnh mu. Hy sa i file BAI_5B.ASM v lu vi tn BAI_5B1.ASM c th thc hin c yu cu sau: nhp t mt chui k t bt k, sau lu vo tp tin c tn l d:\tt_asm\solieu.txt. Gi : dng hm 0Ah ca int 21h nhp vo mt chui k t, sau p dng ton b gii thut ca BAI_5B.ASM. Hy sa i file BAI_5B1.ASM v lu vi tn BAI_5B2.ASM c th thc hin c yu cu sau: to tn tp tin mi, tn tp tin c nhp t bn phm.
22
Bi 5 X l tp tin Sau nhp vo mt chui k t bt k v lu chui k t nhp vo tp tin va to. Gi : xem li BAI_5A1.ASM ly li gii thut nhp vo tn file v a zero (con s 0) v cui chui i vi trng hp tn file c nhp t bn phm v cc vn cn li th xem li file BAI_5B1.ASM. Hy sa i file BAI_5B2.ASM v lu vi tn BAI_5B3.ASM c th thc hin c yu cu sau: to tn tp tin mi, tn tp tin c nhp t bn phm. Sau nhp vo mt chui k t thng, sau i hoa k t u ca mi t v lu chui k t thay i vo tp tin va to. Gi : xem li cc bi tp lm trong bi 5 x l k t v cc file BAI_5B2.ASM.
cseg segment assume cs:cseg, ds:dseg begin: mov ax, dseg mov ds, ax mov ah, 3ch ; tao tap tin moi lea dx, tenfile mov cx, 0 ; tap tin co thuoc tinh binh thuong int 21h mov thefile, ax ; cat the file mov ah, 40h ; ghi file mov bx, thefile xor cx, cx mov cl, len lea dx, string1 int 21h mov ah, 3eh ; dong tap tin mov bx, thefile int 21h mov ah, 4ch ; thoat ve Dos int 21h cseg ends end begin 3.3. c ni dung ca tp tin ( tn ti trn a v c ni dung). Hin th ni dung ca tp tin ln mn hnh. Son tho nh on chng trnh mu pha di v lu vi tn l BAI_5C.ASM. Bin dch v cho chy file BAI_5C.ASM kim tra v xem kt qu.
23
Bi 5 X l tp tin Xem li on chng trnh mu, hy a ra gii thut c ni dung ca tp tin v hin th ni dung ra mn hnh. Hy th thay i thuc tnh tp tin trong lnh mov al, 2 ln lt thnh cc gi tr khc nh 0, 1, 3 hoc 4. Bin dch v cho chy chng trnh xem kt qu. C nhn xt g v cc gi tr ny ?. Th file c vai tr nh th no trong x l tp tin. Nu s byte cn c (gi tr cha trong thanh ghi cx) ln hn kch thc tht s ca tp tin th c gy ra li g hay khng ?. Sau khi c ni dung ca tp tin vo vng m bng hm 3fh ca INT 21h, thanh ghi ax s c gi tr thay i hay khng v n cha (gi tr) g ?. Lm sao xc nh c khi no c xong ni dung thnh tp tin ?. Hy th a ra hng gii quyt. Hy sa i file BAI_5C.ASM v lu vi tn BAI_5C1.ASM c th thc hin c yu cu sau: c ni dung ca mt tp tin v hin th ni dung ln mn hnh. Tn tp tin c nhp t bn phm. Gi : s dng li gii thut nhp tn file t bn phm v a zero v cui chui v cc bi c lin quan trong bi 6. Hy sa i file BAI_5C1.ASM v lu vi tn BAI_5C2.ASM c th thc hin c yu cu sau: copy ni dung ca mt tp tin bt k sau paste sang mt v tr khc. Gi : cc gii thut nhp tn file t bn phm th c sn, gii thut copy v paste nh sau: trc ht phi m tp tin c bng hm 3dh, chng ta nh ngha sn ng dn cha tn file cn m, c ni dung ca tp tin vo vng m bng hm 3fh, nh ct th file; to tn tp tin mi bng hm 3ch, chng ta nh ngha sn ng dn cha tn file cn to, nh ct th file; ghi ni dung ca vng m vo tp tin mi va to bng hm 40h; ng hai tp tin li bng hm 3eh, tt c cc hm ny u ca int 21h. Hy sa i file BAI_5C2.ASM v lu vi tn BAI_5C3.ASM c th thc hin c yu cu sau: copy ni dung ca mt tp tin bt k sau paste sang mt v tr khc. Tn tp tin c copy v tp tin sau khi paste u nhp t bn phm. Gi : hon ton tng t nh BAI_5C2.ASM, nhng chng ta cn tn dng li gii thut nhp tn file t bn phm t BAI_5B3.ASM. Hy sa i file BAI_5C3.ASM v lu vi tn BAI_5C4.ASM c th thc hin c yu cu sau: save as ni dung ca mt tp tin. Tn tp tin c copy v save as u nhp t bn phm. Gi : bi ny ging tng t nh BAI_5C3.ASM. Hy sa i file BAI_5C3.ASM v lu vi tn BAI_5C4.ASM c th thc hin c yu cu sau: c ni dung ca tp tin v sau nhp mt chui k t bt k v ghi tip theo sau ni dung ca tp tin va m. Tn tp tin nhp t bn phm. Gi : xem li BAI_5C1.ASM, BAI_5B1.ASM, BAI_5B2.ASM v hm 42h ca int 21h (di v tr con tr tp tin). Hy sa i file BAI_5C4.ASM v lu vi tn BAI_5C5.ASM c th thc hin c yu cu sau: m ha ni dung ca tp tin. Tn tp tin cn m ha c nhp t bn phm. Gi : nhp vo tn file cn m ha, m mt file c bng hm 3dh; c ni dung ca tp tin vo vng m bng hm 3fh; m ha vng m c c bng mt trong cc php ton cng, tr, nhn, chia, and, or, not , va m ha va lu ni dung tr li vng m; di v tr con tr tp tin
24
Bi 5 X l tp tin v u tp tin bng hm 42h; sau ghi ni dung ca vng m tr li tp tin ban u thng qua th file ca n. Tt c cc hm s dng y u ca int 21h. Hy sa i file BAI_5C5.ASM v lu vi tn BAI_5C6.ASM c th thc hin c yu cu sau: gii m ni dung ca tp tin m ha. Tn tp tin cn gii m c nhp t bn phm. Gi : gii m l trng hp ngc li ca m ha, nu m ha theo phng thc no th gii m phi lm ngc li phng thc m ho .
dseg segment tenfile db "d:\tt_asm\data.txt",0 thefile dw ? buffer db 251 dup ('$') dseg ends cseg segment assume cs:cseg, ds:dseg begin: mov ax, dseg mov ds, ax mov ah, 3dh ; mo tap tin da co lea dx, tenfile mov al, 2 ; thuoc tinh tap tin int 21h mov thefile, ax ; cat the file mov ah, 3fh ; doc noi dung file vao vung dem mov bx, thefile lea dx, buffer mov cx, 250 ; so byte can doc tu file da mo int 21h mov ah, 3eh ; dong tap tin mov bx, thefile int 21h mov ah, 09h ; in noi dung cua file ra man hinh lea dx, buffer int 21h mov ah,08h ; dung man hinh de xem ket qua int 21h mov ah, 4ch ; thoat ve Dos int 21h cseg ends end begin 3.4. Xa tp tin. Son tho nh on chng trnh mu pha di v lu vi tn l BAI_5D.ASM. Bin dch v cho chy file BAI_5D.ASM kim tra v xem kt qu. Hy sa i file BAI_5D.ASM v lu vi tn BAI_5D1.ASM c th thc hin c yu cu sau: xa tn mt tp tin. Tn tp tin cn c nhp t bn phm. Gi : xem li cc bi trc ly gii thut nhp tn file t bn phm.
25
Bi 5 X l tp tin dseg segment tenfile db "d:\tt_asm\data.txt",0 dseg ends cseg segment assume cs:cseg, ds:dseg begin: mov ax, dseg mov ds, ax mov ah,41h ; xoa tap tin da co lea dx, tenfile int 21h mov ah, 4ch ; thoat ve Dos int 21h cseg ends end begin 3.5. i tn tp tin c thnh mt tp tin mi trong cng th mc Son tho nh on chng trnh mu pha di v lu vi tn l BAI_5E.ASM. Bin dch v cho chy file BAI_5E.ASM kim tra v xem kt qu. Hy to mt th mc con c tn l baitap nm trong th mc tt_asm. Sa i lnh oldfile db d:\tt_asm\data.txt,0 v newfile db tt_asm\solieu.txt,0 li thnh oldfile db d:\tt_asm\solieu.txt,0 v newfile db tt_asm\baitap\data.txt,0. Bin dch li v cho chy chng trnh xem xt kt qu. C nhn xt g v kt qu nhn c. Hy sa i file BAI_5E.ASM v lu vi tn BAI_5E1.ASM c th thc hin c yu cu sau: i tn mt tp tin. Tn tp tin c v mi c nhp t bn phm. Gi : xem li cc bi tp trc ly gii thut nhp tn file t bn
phm
dseg segment oldfile db "d:\tt_asm\data.txt",0 newfile db "d:\tt_asm\solieu.txt",0 dseg ends cseg segment assume cs:cseg, ds:dseg, es: dseg begin: mov ax, dseg mov ds, ax mov es, ax mov ah,56h ; rename/remove tn file cu thanh moi lea dx, oldfile lea di, newfile int 21h mov ah, 4ch ; thoat ve Dos int 21h cseg ends end begin
26
Bi 5 X l tp tin
4. Bi tp kim tra:
4.1. Vit chng trnh s dng hm 41h/ INT 21h xa tp tin trn a. Tn tp tin cn xa c nhp t bn phm khi thc hin chng trnh. 4.2. Vit chng trnh nhp 1 chui t bn phm, sau ghp chui nhn c vo cui ca ni dung tp tin c trn a. Tn tp tin nhp t bn phm khi chy chng trnh. 4.3. Vit chng trnh nhp 1 chui t bn phm, sau chn chui nhn c vo u ca ni dung tp tin c trn a. Tn tp tin nhp t bn phm khi chy chng trnh. 4.4. Vit chng trnh ghp ni dung 2 tp tin c sn trn a thnh 1 tp tin mi. Tn ca cc tp tin c nhp t bn phm khi chy chng trnh. 4.5. Vit chng trnh c ni dung tp tin trn a, sau i tt c k t HOA thnh k t thng v lu li vo tp tin . Tn tp tin phi c nhp t bn phm
27
Bi 6 X l chui k t
Bi 6: X L Chui K T
1. Mc Tiu:
Vit c cc chng trnh x l chui k t bng cc lnh x l chui Bng m ASCII. Kt qu ca cc bi th nghim trc Cc hm 01h, 02h, 06h, 08h, 09h, 0Ah ca INT 21h v cc lnh x l chui nh MOVSB/W, SCASB/W, STOSB/W, CMPSB/W.
Bi 6 X l chui k t
writeln macro bien1 LOCAL bien1 mov ah,09 lea dx, bien1 int 21h mov ah,02h mov dl, 0ah int 21h mov dl, 0dh int 21h endm dseg segment tbao db "Chuong tring so sanh oldpass va newpass$" oldpass db "0123456789" newpass db "1234567890" tbao1 db "Haichuoi giong nhau $" tbao2 db "Haichuoi khong giong nhau $" dseg ends cseg segment assume cs:cseg, ds:dseg, es: dseg begin: mov ax, dseg mov ds, ax mov es, ax writeln tbao cld ; chonchieu xu ly chuoi mov cx, 10 ; so ky tu/so byte can so sanh lea si, oldpass; (DS:SI)--> dia chi cua chuoi nguon lea di, newpass; (ES:DI)--> dia chi cua chuoi dich repe cmpsb ; so sanh tung ky tu/byte je intb1 writeln tbao2 jmp thoat intb1: writeln tbao2 thoat: mov ah,08h int 21h mov ah, 4ch int 21h cseg ends end begin Hy sa i file BAI_6A1.ASM, kt hp vi file BAI_6A.ASM (chng trnh mu) v lu vi tn BAI_6A2.ASM c th thc hin c nhim v sau: nhp vo mt chui k t c 10 k t, trong lc nhp ch hin th ra k t *. Sau so snh vi mt oldpass c ni dung ty (nhng ch c di l 10 k t m do
29
Bi 6 X l chui k t chng ta gn trc, v d nh oldpass db 1234567890). Nu 10 k t va nhp c ni dung ging oldpass th in ra cu thng bo Ban da nhap dung roi v thot, ngc li th in ra cu thng bo Ban da nhap sai roi va vui long nhap lai v quay tr li nhp cho n khi no ng mi thot. Gi : dng hm 08h, 02h, 09h ca int 21h v cc lnh loop, cmpsb,. 3.2. Di chuyn 33 bytes t ni dung ca string1 sang string2, sau in ni dung ca string2 ra mn hnh. Son tho nh on chng trnh mu v lu vi tn l BAI_6B.ASM. Bin dch v cho chy file BAI_6B.ASM kim tra v xem kt qu.
dseg segment string1 db "Khong co gi quy hon doc lap tu do" string2 db 34 dup('$') dseg ends cseg segment assume cs:cseg, ds:dseg, es: dseg begin: mov ax, dseg mov ds, ax mov es, ax cld ; chon chieu xu ly chuoi mov cx, 33 ; so ky tu/so byte can di chuyen lea si, string1 ; (DS:SI)--> dia chi cua chuoi nguon lea di, string2 ; (ES:DI)--> dia chi cua chuoi dich rep movsb ; di chuyen tung byte mov ah, 09h lea dx, string2 int 21h mov ah,08h ; dung man hinh de xem ket qua int 21h mov ah, 4ch ; thoat ve Dos int 21h cseg ends end begin Ti sao ch di chuyn 33 k t/byte m li khai bo bin string2 db 34 dup($). Th thay 34 thnh 33 v tin hnh bin dch, chy chng trnh xem kt qu. C nhn xt g v vn ny khng ?. Gii thch ngha ca vic khai bo ny. Thay lnh CLD trong on chng trnh mu thnh STD. Bin dch v cho chy chng trnh kim chng kt qu. Cho nhn xt v kt qu nhn c. Nu thay lnh movsb thnh MOVSW th chng ta c phi thay i gi tr no trong on chng trnh mu trn khng ?. Nu c thay i, hy bin dch v chy chng trnh kim chng li kt qu.
30
Bi 6 X l chui k t C th thay th lnh REP MOVSB bi mt s lnh khc hay khng? Nu c th hy thay i v sau bin dch, cho chy chng trnh kim chng li kt qu. Gi s ta c ni dung ca mt bin string1 c tng s byte >256 byte th lc chng ta phi khai bo li cc bin ny nh th no ?. Lc ny c kh khn g xy ra khng ?. Hy th sa li, sau bin dch v chy chng trnh xem kt qu. C cch no xc nh chiu di ca mt bin bt k hay khng ?. Hy cho bit cc c php ca lnh c th thc hin c yu cu ny. Sau th p dng xc nh chiu di ca bin string1.
3.3. Tm k t A c trong mt chui k t bt k, nu c th in ra cu thng bo l c k t A trong chui k t v ngc li. Son tho nh on chng trnh mu v lu vi tn l BAI_6C.ASM.
write macro bien1 mov ah, 09h lea dx, bien1 int 21h endm dseg segment string1 db "NGAC NHIEN CHUA ?" tb1 db "co ky tu A trong chuoi string1 $" tb2 db "khong ky tu A trong chuoi string1 $" dseg ends cseg segment assume cs:cseg, ds:dseg, es: dseg begin: mov ax, dseg mov ds, ax mov es, ax cld ; chonchieu xu ly chuoi mov cx, 17 ; so ky tu can tim mov al, 'A' ; tim kien ky tu A trong string1 lea di, string1 ; (ES:DI)--> dia chi cua chuoi dich repne scasb ; lap lai viec tim kiem ky tu cho den jne intb2 ; khi gap duoc hoac den het chuoi write tb1 jmp thoat intb2: write tb2 thoat: mov ah,08h ; dung man hinh de xem ket qua int 21h mov ah, 4ch ; thoat ve Dos int 21h cseg ends end begin
Bin dch v cho chy file BAI_6C.ASM kim tra v xem kt qu.
31
Bi 6 X l chui k t Thay lnh MOV AL, A thnh MOV AL, B, sau bin dch v chy chng trnh xem kt qu. Gii thch nhim v ca cc lnh t CLD cho n JNE INTB2. C th thay th lnh REPNE SCASB thnh cc lnh khc c khng ?. Nu c hy thay th chng, bin dch v chy chng trnh kim chng li kt qu.
32
RadASM l mi trng pht trin Hp ng, c xy dng kt hp nhng hp ng khc nhau nhau MASM, TASM, HASM . v chy trn mi trng Windows. Mi hp ng khc nhau khi kp hp vo RadASM phi c cu hnh khc nhau. V mc ch cung cp cng c cho sinh vin s dng n gian, nn RadASM c cu hnh ph hp vi hp ng MASM for DOS. V th trong qu trnh s dng, sinh vin khng cn phi cu hnh g thm.
1. Khi ng RadASM
Nhp p biu tng trn desktop th mn hnh lm vic ca RadASM xut hin nh hnh 1. Mn hnh lm vic ca RadASM chia thnh 2 vng: Vng son tho dng son tho chng trnh ngun ASM Vng thng bo kt qu: Khi dch chng trnh, nhng kt qu hay li s xut hin ti vng ny
33
Cc menu thng dng l FILE (hnh 2) v MAKE (hnh 3), cc lnh thng New File (Ctrl+N): M file mi son tho chng trnh mi Open File (Ctrl+O): M file lu sn trn a Save File (Ctrl+S): Lu file thnh tn (nh t tn file khng c khong trng, phn m rng ASM c thm vo t ng) Assemble (F5): Hp dch file ngun (ASM) thnh file i tng (OBJ) Link (Alt+Ctrl+F5): Lin kt file i tng (OBJ) thnh file thc thi (EXE) Run! (Ctrl+Shift+F5): Thc thi chng trnh (EXE)
3. Hp dch (Assemble)
Sau khi lu file chng trnh ngun xong, chn Assemble trong menu MAKE (Hay bm phm nng tng ng) tin hnh hp dch chng trnh ngun. Nu chng trnh c li c php th vng thng bo c dng hnh 4. Trong tng li c ch ra bi s th t dng lnh v m li V d: chuoi2.asm(18) : error A2008: syntax error : mod Li dng 18, m li A2008: sai c php mod
34
Hnh 4: Thng bo kt qu Hp dch khng thnh cng Khi chng trnh xut hin li th file i tng (OBJ) khng c to ra v ngi lp trnh phi sa li cho n khi khng cn li. Khi khng c li chng trnh (Hp dch thnh cng) th trong vng thng bo xut hin nh hnh 5 v file i tng (OBJ) c to ra. Khi mi chuyn sang bc LIN KT
4. Lin kt (Link)
Chn lnh Link trong menu MAKE. (hay bm phm nng tng ng) Sau khi hon thnh bc hp dch, th bc lin kt l bc cui cng to ra file thc thi (EXE). Trong bc ny, khng cn kim tra li c php na v thng thng s lin kt thnh cng v file thc thi EXE s c to ra. Ni dung thng bo khi lin kt thnh cng nh hnh 6.
35
Ph Lc Mi trng pht trin hp ng RadASM Nu chng trnh khng c thao tc no truy xut bn phm hay mn hnh th chng ta khng thy c ca s ny. Nh vy, trong lp trnh hp ng, nu mun nhn thy kt qu g th chng ta phi c nhng on lnh tng ng xut gi tr ra mn hnh.
36