Добавил:
korayakov
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:СПО (Лупин) / Лабы / Asm / LAB6
.TXT ‹ Ў®а в®а п а Ў®в N 6
–Ґ«м а Ў®вл: Ё§г票Ґ ўлў®¤ в®зҐз®© Ја дЁЄЁ ¤«п EGA ¤ ЇвҐа :
жЁЄ«л Ё Їа®жҐ¤гал ў бᥬЎ«ҐаҐ.
Ља вЄЁҐ ᢥ¤ҐЁп ® ўЁ¤Ґ®бЁб⥬ е I B M
Ћб®ЎҐ®бвЁ а §«Ёзле ўЁ¤Ґ®бЁб⥬ I B M ®ЇЁб л, ЇаЁ¬Ґа,
ў [ 1 ]. ‚ а Ў®вҐ ¬л Є®а®вЄ® а бᬮваЁ¬, Є Є ўлў®¤Ёвбп Ја дЁзҐб-
Є п Ёд®а¬ жЁп ў EGA. ‚ 16 梥⮬ ०Ё¬Ґ EGA ЁбЇ®«м§гҐв 4 ЎЁв®ўлҐ
Ї«®бЄ®бвЁ ¤«п еа ҐЁп Ёд®а¬ жЁЁ ® 梥⥠Є ¦¤®© Ё§ 640*350 в®зҐЄ
(Є ¦¤ п в®зЄ ®ЇЁблў Ґвбп 4-¬п ЎЁв ¬Ё). ЋЇҐа жЁЁ ¤ ᮤҐа¦Ё¬л¬
ЎЁв®ўле Ї«®бЄ®б⥩ ўлЇ®«пҐвбп Ґ ҐЇ®б।б⢥®, зҐаҐ§ 4 аҐ-
ЈЁбва дЁЄб в®а , ॣЁбва Ї «Ёвал Ё ॣЁбва ¬ бЄЁ. ЋЎ¬Ґ б ॣЁбв-
а ¬Ё ў®§¬®¦Ґ Ї®ажЁп¬Ё Ї® 8 ЎЁв (1 Ў ©в). —в®Ўл § ¤ вм 梥⠪®Є-
аҐв®© в®зЄЁ ў Ў ©вҐ, ®бв «млҐ ¤® § ¬ бЄЁа®ў вм б Ї®¬®ймо ¬ б-
ЄЁ.
„«п Ї®¤а®Ў®Ј® § Є®¬бвў б EGA б®ўҐв㥬 Їа®зЁв вм [ «1. бва.
228-283].
Џа®Ја ¬¬ бᥬЎ«ҐаҐ
’ЁЇЁз п бᥬЎ«Ґа п Їа®Ја ¬¬ вЁЇ .EXE б®бв®Ёв Ё§ ваҐе
ᥣ¬Ґв®ў (з б⥩):
- б⥪
- ¤ лҐ
- Є®¤.
Џа ўЁ« ®д®а¬«ҐЁп ¬®¦® гўЁ¤Ґвм ў ЇаЁўҐ¤Ґ®¬ ЇаЁ¬ҐаҐ. ЋЇЁ-
б ЁҐ Є ¦¤®Ј® ᥣ¬Ґв § Є зЁў Ґвбп ®ЇҐа в®а®¬ ENDS.
1. ‘ҐЈ¬Ґв б⥪ - ᮤҐа¦Ёв ¤ЁаҐЄвЁўг DW (Define Word), ®ЇЁблў о-
йго 128 б«®ў. ќв® а §¬Ґа б⥪ . Cва®Є ®ЇЁб Ёп ᥣ¬Ґв ᮤҐа-
¦Ёв Є« бб ᥣ¬Ґв - 'STACK' Ё вЁЇ ᥣ¬Ґв - STACK.
2. ‘ҐЈ¬Ґв ¤ ле - з «® DATASG, Є« бб 'DATA'. ‚ Ґ¬ ЇаЁўҐ¤Ґ®
®ЇЁб ЁҐ ЁбЇ®«м§гҐ¬ле ў Їа®Ја ¬¬Ґ ¤ ле
ЇаЁ¬Ґа:
x0 dw (б«®ў®) 0 (§ 票Ґ)
y0 db (Ў ©в) 0 (§ 票Ґ)
z0 dd (¤ў®©®Ґ б«®ў®) ABCABCH (§ 票Ґ)
3. ‘ҐЈ¬Ґв Є®¤ - з «® CODESG Є« бб 'CODE' - Їа®Ја ¬¬л©.
’ҐЄбв Їа®Ја ¬¬®Ј® ᥣ¬Ґв зЁ Ґвбп б ®ЇҐа в®а ASSUME, Є®-
в®ал© Ї®§ў®«пҐв ва б«пв®аг б®Ї®бв ўЁвм ᥣ¬ҐвлҐ аҐЈЁбвал Ё
¤аҐбгҐ¬лҐ Ё¬Ё ᥣ¬Ґвл. ‘ ¬ Їа®Ја ¬¬ б®бв®Ёв Ё§ Їа®жҐ¤га.
Џа®Ја ¬¬ Ё§ ЇаЁўҐ¤Ґ®Ј® ЇаЁ¬Ґа аЁбгҐв нЄа Ґ Їаאַ㣮«м-
ЁЄ ўлб®в®© hi = 100 в®зҐЄ Ё иЁаЁ®© len = 128 в®зҐЄ (16 Ў ©в)
梥⮬ color = 14. ‚ Їа®Ја ¬¬Ґ ¤ўҐ Їа®жҐ¤гал: RECT - аЁб®ў ЁҐ
Їаאַ㣮«мЁЄ Ё MAIN - ®б®ў п.
Џа®жҐ¤га зЁ Ґвбп б Ё¬ҐЁ (MAIN) Ё ®ЇҐа в®а PROG. Ќ §-
票Ґ ®в¤Ґ«мле ®ЇҐа в®а®ў Ї®пв® Ё§ Є®¬Ґв аЁҐў. ‚ Їа®Ја ¬-
¬Ґ x0 Ё y0 - Є®®а¤Ё вл «Ґў®Ј® ўҐа奣® гЈ« Їаאַ㣮«мЁЄ
(x0 - ў Ў ©в е, y0 - ў ЇЁЄбҐ« е (в®зЄ е)). ЋЇҐа в®а CALL ўл§л-
ў Ґв ᮮ⢥вбвўгойго Їа®Ја ¬¬г (г б RECT).
ЏҐаҐ¤ ўл室®¬ Ё§ Їа®Ја ¬¬л гбв ®ўЁ¬ ⥪бв®ўл© ўЁ¤Ґ®аҐ¦Ё¬.
’ҐЄбв Їа®Ја ¬¬л § ўҐаи Ґвбп ¤ЁаҐЄвЁў®© END, § Є зЁў о饩
ва б«пжЁо. ‚ Є зҐб⢥ ®ЇҐа в®а нв®© ¤ЁаҐЄвЁўл гЄ §лў Ґвбп
в®зЄ ўе®¤ ў Ј« ўго Їа®жҐ¤гал (MAIN).
ЏаЁ¬Ґал Ї®бв஥Ёп жЁЄ«®ў ў бᥬЎ«ҐаҐ
1. MOV CX, 4 ; § ¤ Ґ¬ ў CX бзҐвзЁЄ жЁЄ«®ў
L1: .......... ; ўгв२Ґ
.......... ; ®ЇҐа в®ал жЁЄ«
LOOP L1 ; 㬥миЁвм CX Ё Ї®ўв®аЁвм, Ґб«Ё CX <> 0
2. MOV STEP, 4 ; § ¤ Ґ¬ ў STEP бзҐвзЁЄ жЁЄ«®ў
L1: .......... ; ўгв२Ґ
.......... ; ®ЇҐа в®ал жЁЄ«
DEC STEP ; 㬥миЁ¬ STEP
JNZ L1 ; Ї®ўв®аЁ¬ жЁЄ«, Ґб«Ё STEP <> 0
ЏаЁ¬Ґа Їа®Ја ¬¬л
TITLE GRAPF.EXE
STACKSG SEGMENT PARA STACK 'Stack'
DW 128 DUP(?)
STACKSG ENDS
DATASG SEGMENT PARA 'Data'
x0 dw 0
y0 db 0
len dw 0
hi dw 0
xy dw 0
color db 0
DATASG ENDS
CODESG SEGMENT PARA 'Code'
ASSUME CS:CODESG,DS:DATASG,SS:STACKSG,ES:NOTHING
RECT PROC FAR ;Џ®¤Їа®Ја ¬¬ ¤«п аЁб®ў Ёп
Їаאַ㣮«мЁЄ
MOV AL,y0 ;Ќ-Є®®а¤Ё в з «
MOV BL,80 ;—Ёб«® Ў ©в ў бва®ЄҐ
MUL BL ;AL*BL->AX
ADD AX,x0 ;ЏаЁЎ ўЁ¬ ᬥ饨Ґ Єгаб®а
MOV xy,A ;‘®еа Ё¬
MOV CX,hi ;‚лб®в Їаאַ㣮«мЁЄ (в®зҐЄ)
MOV SI,0 ;‘¬ҐйҐЁҐ ®в гЈ«
L2: PUSH CX ;‘®еа Ё¬ ў б⥪Ґ
MOV CX,len ;ЁаЁ Їаאַ㣮«мЁЄ (Ў ©в)
MOV BX,xy ;‘¬ҐйҐЁҐ ®в 0,0
MOV AL,color ;–ўҐв
L1: MOV ES:[BX][SI],AL ;ўлў®¤ ў ўЁ¤Ґ®ЎгдҐа
INC BX ;Є б«Ґ¤го饬㠡 ©вг
LOOP L1 ;жЁЄ« ў бва®ЄҐ
ADD SI,80 ;ЇаЁЎ ўЁ¬ ¤«Ёг бва®ЄЁ
POP CX ;ўлб®вг б⥪
LOOP L2 ;жЁЄ« Ї® бва®Є ¬
RET ;ў®§ўа в ў Їа®Ја ¬¬г
RET ENDP
MAIN PROC
MOV AH,00 ;гбв ®ўЁ¬ Ја дЁзҐбЄЁ© ०Ё¬
MOV AL,10H ;640*350 в®зҐЄ
INT 10H
;
;гбв ®ўЁ¬ ¤аҐб жЁо Є ўЁ¤Ґ®ЎгдҐаг
MOV AX,0A000H
MOV ES,AX
MOV BX,0
;гбв ®ўЁ¬ ०Ё¬ § ЇЁбЁ 2
MOV DX,3CEH ; ¤аҐбл© аҐЈЁбва Є®ва®««Ґа
MOV AL,8 ;ॣЁбва ०Ё¬
OUT DX,AL ;гбв ®ўЄ ¤аҐб㥬®Ј® ॣЁбва
MOV DX,3CFH ;ॣЁбва ¤ ле
MOV AL,2 ;०Ё¬ 2
OUT DX,AL ;гбв ®ўЄ ०Ё¬ § ЇЁбЁ
;гбв ®ўЁ¬ ¬ бЄг ЎЁв®ў OFFH
MOV DX,3ty ; ¤аҐбл© аҐЈЁбва Є®ва®««Ґа
MOV AL,B ;ॣЁбва ¬ бЄЁ ЎЁв®ў
OUT DX,AX ;гбв ®ўЄ ¤аҐб㥬®Ј® ॣЁбва
INC DX ;ॣЁбва ¤ ле
MOV AL,OFFH ;ўбҐ ЇЁЄбҐ«л Ў ©в а §¬ бЄЁа®ў вм
OUT DX,AL ;гбв ®ўЄ ¬ бЄЁ ЎЁв®ў
MOV color,14 ;梥в
MOV hi,100 ;ўлб®в (ў ЇЁЄбҐ« е)
MOV len,16 ;иЁаЁ (ў Ў ©в е)
MOV x0,30 ;X-Є®®а¤Ё в з «
MOV y0,100 ;Y-Є®®а¤Ё в з «
CALL RECT ;ўл§®ў Їа®жҐ¤гал
;§ ўҐаи Ґ¬ Їа®Ја ¬¬г
MOV AH,00H ;ўў®¤ б Є« ўЁ вгал
INT 16H
CMP AL,00 ;Їа®ўҐаЄ <Enter>
JZ exit ;Ґб«Ё ¤ , в® exit
exit:
MOV AN,00N ;гбв ®ўЁ¬ ⥪бв®ўл© аҐ¦Ё¬
MOV AL,03H
INT 10H
MOV AX,4COOH ;Є®¤ ўл室
INT 21H
MAIN ENDP
RET
CODESG ENDS
END MAIN
Џ®а冷Є ўлЇ®«ҐЁп а Ў®вл
1. Ќ ЎҐ©вҐ ў । Єв®аҐ ЇаЁўҐ¤Ґл© ЇаЁ¬Ґа (Їгбвм нв® Ўг¤Ґв д ©«
PRIMER.ASM)
2. Ћвва б«Ёаг©вҐ ҐЈ®:
TASM PRIMER; ( ¤ЁбЄҐ Ї®пўЁвбп д ©« PRIMER.OBJ.)
3. ‘Є®¬Ї®г©вҐ Їа®Ја ¬¬г:
TLINK PRIMER; ( ¤ЁбЄҐ Ї®пўЁвбп д ©« PRIMER.EXE)
4. “ЎҐ¤ЁвҐбм ў а Ў®в®бЇ®б®Ў®бвЁ Їа®Ја ¬¬л.
5. €§¬ҐЁвҐ Їа®Ја ¬¬г в Є, зв®Ўл ® аЁб®ў « нЄа Ґ 16 Їаאַ-
гЈ®«мЁЄ®ў а §®Ј® 梥в (®в 0 ¤® 15) а §¬Ґа®¬ hi = 50,
len = 8, x0 = 3, y0 = 20, и Ј Ї® ®бЁ X а ўҐ 8 Ў ©в, Ї® ®бЁ
Y 30 в®зҐЄ.
ЏаЁ¬Ґз ЁҐ: Ґб«Ё Ґ гЄ § ® h, в® бᥬЎ«Ґа бзЁв Ґв зЁб« ¤Ґбп-
вЁзл¬Ё.
‹ЁвҐа вга
ђ.„¦®а¤Ґ©. ‘Їа ў®зЁЄ Їа®Ја ¬¬Ёбв ЇҐаб® «мле Є®¬ЇмовҐа®ў вЁЇ IBM.
–Ґ«м а Ў®вл: Ё§г票Ґ ўлў®¤ в®зҐз®© Ја дЁЄЁ ¤«п EGA ¤ ЇвҐа :
жЁЄ«л Ё Їа®жҐ¤гал ў бᥬЎ«ҐаҐ.
Ља вЄЁҐ ᢥ¤ҐЁп ® ўЁ¤Ґ®бЁб⥬ е I B M
Ћб®ЎҐ®бвЁ а §«Ёзле ўЁ¤Ґ®бЁб⥬ I B M ®ЇЁб л, ЇаЁ¬Ґа,
ў [ 1 ]. ‚ а Ў®вҐ ¬л Є®а®вЄ® а бᬮваЁ¬, Є Є ўлў®¤Ёвбп Ја дЁзҐб-
Є п Ёд®а¬ жЁп ў EGA. ‚ 16 梥⮬ ०Ё¬Ґ EGA ЁбЇ®«м§гҐв 4 ЎЁв®ўлҐ
Ї«®бЄ®бвЁ ¤«п еа ҐЁп Ёд®а¬ жЁЁ ® 梥⥠Є ¦¤®© Ё§ 640*350 в®зҐЄ
(Є ¦¤ п в®зЄ ®ЇЁблў Ґвбп 4-¬п ЎЁв ¬Ё). ЋЇҐа жЁЁ ¤ ᮤҐа¦Ё¬л¬
ЎЁв®ўле Ї«®бЄ®б⥩ ўлЇ®«пҐвбп Ґ ҐЇ®б।б⢥®, зҐаҐ§ 4 аҐ-
ЈЁбва дЁЄб в®а , ॣЁбва Ї «Ёвал Ё ॣЁбва ¬ бЄЁ. ЋЎ¬Ґ б ॣЁбв-
а ¬Ё ў®§¬®¦Ґ Ї®ажЁп¬Ё Ї® 8 ЎЁв (1 Ў ©в). —в®Ўл § ¤ вм 梥⠪®Є-
аҐв®© в®зЄЁ ў Ў ©вҐ, ®бв «млҐ ¤® § ¬ бЄЁа®ў вм б Ї®¬®ймо ¬ б-
ЄЁ.
„«п Ї®¤а®Ў®Ј® § Є®¬бвў б EGA б®ўҐв㥬 Їа®зЁв вм [ «1. бва.
228-283].
Џа®Ја ¬¬ бᥬЎ«ҐаҐ
’ЁЇЁз п бᥬЎ«Ґа п Їа®Ја ¬¬ вЁЇ .EXE б®бв®Ёв Ё§ ваҐе
ᥣ¬Ґв®ў (з б⥩):
- б⥪
- ¤ лҐ
- Є®¤.
Џа ўЁ« ®д®а¬«ҐЁп ¬®¦® гўЁ¤Ґвм ў ЇаЁўҐ¤Ґ®¬ ЇаЁ¬ҐаҐ. ЋЇЁ-
б ЁҐ Є ¦¤®Ј® ᥣ¬Ґв § Є зЁў Ґвбп ®ЇҐа в®а®¬ ENDS.
1. ‘ҐЈ¬Ґв б⥪ - ᮤҐа¦Ёв ¤ЁаҐЄвЁўг DW (Define Word), ®ЇЁблў о-
йго 128 б«®ў. ќв® а §¬Ґа б⥪ . Cва®Є ®ЇЁб Ёп ᥣ¬Ґв ᮤҐа-
¦Ёв Є« бб ᥣ¬Ґв - 'STACK' Ё вЁЇ ᥣ¬Ґв - STACK.
2. ‘ҐЈ¬Ґв ¤ ле - з «® DATASG, Є« бб 'DATA'. ‚ Ґ¬ ЇаЁўҐ¤Ґ®
®ЇЁб ЁҐ ЁбЇ®«м§гҐ¬ле ў Їа®Ја ¬¬Ґ ¤ ле
ЇаЁ¬Ґа:
x0 dw (б«®ў®) 0 (§ 票Ґ)
y0 db (Ў ©в) 0 (§ 票Ґ)
z0 dd (¤ў®©®Ґ б«®ў®) ABCABCH (§ 票Ґ)
3. ‘ҐЈ¬Ґв Є®¤ - з «® CODESG Є« бб 'CODE' - Їа®Ја ¬¬л©.
’ҐЄбв Їа®Ја ¬¬®Ј® ᥣ¬Ґв зЁ Ґвбп б ®ЇҐа в®а ASSUME, Є®-
в®ал© Ї®§ў®«пҐв ва б«пв®аг б®Ї®бв ўЁвм ᥣ¬ҐвлҐ аҐЈЁбвал Ё
¤аҐбгҐ¬лҐ Ё¬Ё ᥣ¬Ґвл. ‘ ¬ Їа®Ја ¬¬ б®бв®Ёв Ё§ Їа®жҐ¤га.
Џа®Ја ¬¬ Ё§ ЇаЁўҐ¤Ґ®Ј® ЇаЁ¬Ґа аЁбгҐв нЄа Ґ Їаאַ㣮«м-
ЁЄ ўлб®в®© hi = 100 в®зҐЄ Ё иЁаЁ®© len = 128 в®зҐЄ (16 Ў ©в)
梥⮬ color = 14. ‚ Їа®Ја ¬¬Ґ ¤ўҐ Їа®жҐ¤гал: RECT - аЁб®ў ЁҐ
Їаאַ㣮«мЁЄ Ё MAIN - ®б®ў п.
Џа®жҐ¤га зЁ Ґвбп б Ё¬ҐЁ (MAIN) Ё ®ЇҐа в®а PROG. Ќ §-
票Ґ ®в¤Ґ«мле ®ЇҐа в®а®ў Ї®пв® Ё§ Є®¬Ґв аЁҐў. ‚ Їа®Ја ¬-
¬Ґ x0 Ё y0 - Є®®а¤Ё вл «Ґў®Ј® ўҐа奣® гЈ« Їаאַ㣮«мЁЄ
(x0 - ў Ў ©в е, y0 - ў ЇЁЄбҐ« е (в®зЄ е)). ЋЇҐа в®а CALL ўл§л-
ў Ґв ᮮ⢥вбвўгойго Їа®Ја ¬¬г (г б RECT).
ЏҐаҐ¤ ўл室®¬ Ё§ Їа®Ја ¬¬л гбв ®ўЁ¬ ⥪бв®ўл© ўЁ¤Ґ®аҐ¦Ё¬.
’ҐЄбв Їа®Ја ¬¬л § ўҐаи Ґвбп ¤ЁаҐЄвЁў®© END, § Є зЁў о饩
ва б«пжЁо. ‚ Є зҐб⢥ ®ЇҐа в®а нв®© ¤ЁаҐЄвЁўл гЄ §лў Ґвбп
в®зЄ ўе®¤ ў Ј« ўго Їа®жҐ¤гал (MAIN).
ЏаЁ¬Ґал Ї®бв஥Ёп жЁЄ«®ў ў бᥬЎ«ҐаҐ
1. MOV CX, 4 ; § ¤ Ґ¬ ў CX бзҐвзЁЄ жЁЄ«®ў
L1: .......... ; ўгв२Ґ
.......... ; ®ЇҐа в®ал жЁЄ«
LOOP L1 ; 㬥миЁвм CX Ё Ї®ўв®аЁвм, Ґб«Ё CX <> 0
2. MOV STEP, 4 ; § ¤ Ґ¬ ў STEP бзҐвзЁЄ жЁЄ«®ў
L1: .......... ; ўгв२Ґ
.......... ; ®ЇҐа в®ал жЁЄ«
DEC STEP ; 㬥миЁ¬ STEP
JNZ L1 ; Ї®ўв®аЁ¬ жЁЄ«, Ґб«Ё STEP <> 0
ЏаЁ¬Ґа Їа®Ја ¬¬л
TITLE GRAPF.EXE
STACKSG SEGMENT PARA STACK 'Stack'
DW 128 DUP(?)
STACKSG ENDS
DATASG SEGMENT PARA 'Data'
x0 dw 0
y0 db 0
len dw 0
hi dw 0
xy dw 0
color db 0
DATASG ENDS
CODESG SEGMENT PARA 'Code'
ASSUME CS:CODESG,DS:DATASG,SS:STACKSG,ES:NOTHING
RECT PROC FAR ;Џ®¤Їа®Ја ¬¬ ¤«п аЁб®ў Ёп
Їаאַ㣮«мЁЄ
MOV AL,y0 ;Ќ-Є®®а¤Ё в з «
MOV BL,80 ;—Ёб«® Ў ©в ў бва®ЄҐ
MUL BL ;AL*BL->AX
ADD AX,x0 ;ЏаЁЎ ўЁ¬ ᬥ饨Ґ Єгаб®а
MOV xy,A ;‘®еа Ё¬
MOV CX,hi ;‚лб®в Їаאַ㣮«мЁЄ (в®зҐЄ)
MOV SI,0 ;‘¬ҐйҐЁҐ ®в гЈ«
L2: PUSH CX ;‘®еа Ё¬ ў б⥪Ґ
MOV CX,len ;ЁаЁ Їаאַ㣮«мЁЄ (Ў ©в)
MOV BX,xy ;‘¬ҐйҐЁҐ ®в 0,0
MOV AL,color ;–ўҐв
L1: MOV ES:[BX][SI],AL ;ўлў®¤ ў ўЁ¤Ґ®ЎгдҐа
INC BX ;Є б«Ґ¤го饬㠡 ©вг
LOOP L1 ;жЁЄ« ў бва®ЄҐ
ADD SI,80 ;ЇаЁЎ ўЁ¬ ¤«Ёг бва®ЄЁ
POP CX ;ўлб®вг б⥪
LOOP L2 ;жЁЄ« Ї® бва®Є ¬
RET ;ў®§ўа в ў Їа®Ја ¬¬г
RET ENDP
MAIN PROC
MOV AH,00 ;гбв ®ўЁ¬ Ја дЁзҐбЄЁ© ०Ё¬
MOV AL,10H ;640*350 в®зҐЄ
INT 10H
;
;гбв ®ўЁ¬ ¤аҐб жЁо Є ўЁ¤Ґ®ЎгдҐаг
MOV AX,0A000H
MOV ES,AX
MOV BX,0
;гбв ®ўЁ¬ ०Ё¬ § ЇЁбЁ 2
MOV DX,3CEH ; ¤аҐбл© аҐЈЁбва Є®ва®««Ґа
MOV AL,8 ;ॣЁбва ०Ё¬
OUT DX,AL ;гбв ®ўЄ ¤аҐб㥬®Ј® ॣЁбва
MOV DX,3CFH ;ॣЁбва ¤ ле
MOV AL,2 ;०Ё¬ 2
OUT DX,AL ;гбв ®ўЄ ०Ё¬ § ЇЁбЁ
;гбв ®ўЁ¬ ¬ бЄг ЎЁв®ў OFFH
MOV DX,3ty ; ¤аҐбл© аҐЈЁбва Є®ва®««Ґа
MOV AL,B ;ॣЁбва ¬ бЄЁ ЎЁв®ў
OUT DX,AX ;гбв ®ўЄ ¤аҐб㥬®Ј® ॣЁбва
INC DX ;ॣЁбва ¤ ле
MOV AL,OFFH ;ўбҐ ЇЁЄбҐ«л Ў ©в а §¬ бЄЁа®ў вм
OUT DX,AL ;гбв ®ўЄ ¬ бЄЁ ЎЁв®ў
MOV color,14 ;梥в
MOV hi,100 ;ўлб®в (ў ЇЁЄбҐ« е)
MOV len,16 ;иЁаЁ (ў Ў ©в е)
MOV x0,30 ;X-Є®®а¤Ё в з «
MOV y0,100 ;Y-Є®®а¤Ё в з «
CALL RECT ;ўл§®ў Їа®жҐ¤гал
;§ ўҐаи Ґ¬ Їа®Ја ¬¬г
MOV AH,00H ;ўў®¤ б Є« ўЁ вгал
INT 16H
CMP AL,00 ;Їа®ўҐаЄ <Enter>
JZ exit ;Ґб«Ё ¤ , в® exit
exit:
MOV AN,00N ;гбв ®ўЁ¬ ⥪бв®ўл© аҐ¦Ё¬
MOV AL,03H
INT 10H
MOV AX,4COOH ;Є®¤ ўл室
INT 21H
MAIN ENDP
RET
CODESG ENDS
END MAIN
Џ®а冷Є ўлЇ®«ҐЁп а Ў®вл
1. Ќ ЎҐ©вҐ ў । Єв®аҐ ЇаЁўҐ¤Ґл© ЇаЁ¬Ґа (Їгбвм нв® Ўг¤Ґв д ©«
PRIMER.ASM)
2. Ћвва б«Ёаг©вҐ ҐЈ®:
TASM PRIMER; ( ¤ЁбЄҐ Ї®пўЁвбп д ©« PRIMER.OBJ.)
3. ‘Є®¬Ї®г©вҐ Їа®Ја ¬¬г:
TLINK PRIMER; ( ¤ЁбЄҐ Ї®пўЁвбп д ©« PRIMER.EXE)
4. “ЎҐ¤ЁвҐбм ў а Ў®в®бЇ®б®Ў®бвЁ Їа®Ја ¬¬л.
5. €§¬ҐЁвҐ Їа®Ја ¬¬г в Є, зв®Ўл ® аЁб®ў « нЄа Ґ 16 Їаאַ-
гЈ®«мЁЄ®ў а §®Ј® 梥в (®в 0 ¤® 15) а §¬Ґа®¬ hi = 50,
len = 8, x0 = 3, y0 = 20, и Ј Ї® ®бЁ X а ўҐ 8 Ў ©в, Ї® ®бЁ
Y 30 в®зҐЄ.
ЏаЁ¬Ґз ЁҐ: Ґб«Ё Ґ гЄ § ® h, в® бᥬЎ«Ґа бзЁв Ґв зЁб« ¤Ґбп-
вЁзл¬Ё.
‹ЁвҐа вга
ђ.„¦®а¤Ґ©. ‘Їа ў®зЁЄ Їа®Ја ¬¬Ёбв ЇҐаб® «мле Є®¬ЇмовҐа®ў вЁЇ IBM.
