Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторные работы по СП (1-20) / 13 / ASM_13
.txt **********************************************************************
‘€‘’…ЊЌЋ… ЏђЋѓђЂЊЊ€ђЋ‚ЂЌ€…
**********************************************************************
*******************
*** ’Ґ¬ 13 ***
*******************
**********************************************************************
‚‚Ћ„-‚›‚Ћ„ ’…Љ‘’Ћ‚Ћ‰ €Ќ”ЋђЊЂ–€€ ‘ђ…„‘’‚ЂЊ€ BIOS Ё DOS
**********************************************************************
–Ґ«м а Ў®вл:
Ќ ЇЁб вм п§лЄҐ бᥬЎ«Ґа Їа®Ја ¬¬г ®б®ўҐ § ¤ Ё© Ї® ⥬Ґ
"11 €бЇ®«м§®ў ЁҐ ўҐиЁе Їа®жҐ¤га" Ё«Ё "12 €бЇ®«м§®ў ЁҐ ¬ Єа®б।бвў",
ЁбЇ®«м§гойго ®ЇҐа жЁЁ ўў®¤ б Є« ўЁ вгал Ё ўлў®¤ нЄа ®б®ўҐ
ЇаҐалў Ё© DOS Ё Ѓ‘‚‚.
1. ‡ ¤ ЁҐ ЇаҐ¤ў аЁвҐ«мго Ї®¤Ј®в®ўЄг
Ћ§ Є®¬Ёвмбп б ᮤҐа¦ ЁҐ¬ агЄ®ў®¤бвў
€§гзЁвм ЇаЁўҐ¤Ґл© ⥮аҐвЁзҐбЄЁ© ¬ вҐаЁ «
‚лЇ®«Ёвм Їа ЄвЁзҐбЄго з бвм а Ў®вл
‘®бв ўЁвм ®взҐв ® а Ў®вҐ
ЏаҐ¤кпўЁвм १г«мв вл а Ў®вл ЇаҐЇ®¤ ў ⥫о
2. Ља вЄЁҐ ⥮аҐвЁзҐбЄЁҐ ᢥ¤ҐЁп
2.1. ‚ў®¤ б Є« ўЁ вгал - Їа®жҐ¤га ўў®¤ б Є« ўЁ вгал ®ЎйҐЈ® § 票п.
‘Ёб⥬ Є®¤®ў, ЁбЇ®«м§гҐ¬ле Є« ўЁ вга®©, Ґ Ї®¤¤ Ґвбп Їа®бв®© Ёв९аҐв жЁЁ.
K®¤л ¬®Јгв Ё¬Ґвм ¤«Ёг ®¤Ё Ё«Ё ¤ў Ў ©в , Ё Ґв Їа®бв®Ј® ᮮ⢥вбвўЁп ¬Ґ¦¤г
¤«Ё®© Є®¤ Ё ⥬, б«г¦Ёв «Ё ® ¤«п ®Ў®§ 票п бЁ¬ў®« Ё«Ё ¤«п гЇа ў«ҐЁп.
HҐ ўбҐ Є®¬ЎЁ жЁЁ Є« ўЁи ¤ ¦Ґ ўл¤ ов гЁЄ «мл© Є®¤, Ї®н⮬㠥®Ўе®¤Ё¬л
¤®Ў ў®злҐ гбЁ«Ёп, зв®Ўл а §«ЁзЁвм Ёе. HЁ Є®¤л ASCII, Ё а биЁаҐлҐ Є®¤л Ґ
гЇ®а冷зҐл в Є, зв®Ўл Ї®§ў®«п« бм Ёе Їа®бв п ЈагЇЇЁа®ўЄ Ё Їа®ўҐаЄ ®иЁЎ®Є.
’ Є зв® Їа®жҐ¤га ўў®¤ б Є« ўЁ вгал ®ЎйҐЈ® § 票п вॡгҐв е«®Ї®в«Ёў®Ј®
Їа®Ја ¬¬Ёа®ў Ёп.
ЏаЁўҐ¤Ґл© ЇаЁ¬Ґа ®в«Ёз Ґвбп ⥬, зв®, Є®Ј¤ ўбв Ґв ў®Їа®б ® ⮬, ў®§ЁЄ «Ё
Ї®«гзҐл© Є®¤ ЇаЁ ¦ вЁЁ ®¤®© Є« ўЁиЁ «ЁЎ® ў Є®¬ЎЁ жЁЁ б Є« ўЁиҐ© Ctrl,
Їа®ўҐапҐвбп бЄ -Є®¤ (Єбв вЁ, бЄ -Є®¤ § Ї®¬Ё Ґвбп ў ЎгдҐаҐ Є« ўЁ вгал).
;---Ї®«г票Ґ Є®¤ ¦ в®© Є« ўЁиЁ Ё ®ЇаҐ¤Ґ«ҐЁҐ ҐЈ® вЁЇ
NEXT: MOV AH,0 ;дгЄжЁп ўў®¤ б Є« ўЁ вгал BIOS
INT 16H ;Ї®«гз Ґ¬ ўўҐ¤Ґл© Є®¤
CMP AL,0 ;Їа®ўҐаЄ а биЁаҐл© Є®¤
JE EXTENDED_CODE ;Ґб«Ё ¤ , в® бЇҐжЁ «мго Їа®жҐ¤гаг
CMP AL,32 ;Їа®ўҐаЄ гЇа ў«пойЁ© бЁ¬ў®«
JL CONTROL_CODE ;Ґб«Ё ¤ , в® бЇҐжЁ «мго Їа®жҐ¤гаг
CMP AL,65 ;Ґб«Ё бЁ¬ў®« Ґ ўе®¤Ёв ў Ў®а ЇЁиг饩
JL NEXT ; ¬ иЁЄЁ, в® ЎҐаҐ¬ б«Ґ¤гойЁ©
CMP AL,123
JL NEXT
;---⥯Ґам ®Ўа Ў влў Ґ¬ бЁ¬ў®« ў AL
STOSB ;§ Ї®¬Ё Ґ¬ бЁ¬ў®« Ї® ¤аҐбг ES:DI
MOV AH,2 ;дгЄжЁп ўлў®¤ бЁ¬ў®« нЄа
MOV DL,AL ;Ї®¬Ґй Ґ¬ бЁ¬ў®« ў DL ЇҐаҐ¤ ўлў®¤®¬
INT 21H ;ўлў®¤Ё¬ ҐЈ® нЄа
. . .
JMP NEXT ;ЇҐаҐе®¤Ё¬ Є б«Ґ¤го饬г бЁ¬ў®«г
;--- «Ё§Ёа㥬 гЇа ў«пойЁҐ Є®¤л
CONTROL_CODE:
CMP AL,13 ;Є®¤ ASCII 13?
JNE TAB ;Ґб«Ё Ґв, в® б«Ґ¤гой п Їа®ўҐаЄ
CMP AH,28 ;Ё зҐ Їа®ўҐа塞 бЄ -Є®¤ <CR>
JNE C_M ;Ґб«Ё Ґв, в® Ўл«® Ctrl-M
CALL CARRIAGE_RET ;®Ўа Ў®вЄ ў®§ўа в Є аҐвЄЁ
JMP NEXT ;ЇҐаҐе®¤ Є б«Ґ¤го饬г бЁ¬ў®«г
C_M: CALL CTRL_M ;®Ўа Ў®вЄ Ctrl-M
JMP NEXT ;ЇҐаҐе®¤ Є б«Ґ¤го饬г бЁ¬ў®«г
TAB: CMP AL,9 ;Їа®ўҐаЄ в Ўг«пжЁо
. . .
CMP AL,10 ;§ ⥬ Їа®ўҐаЄ ¤агЈЁе
. . .
REJECT: JMP NEXT ;ЇҐаҐе®¤ Є б«Ґ¤го饬г бЁ¬ў®«г
;--- «Ё§ а биЁаҐле Є®¤®ў (ўв®а®© Ў ©в Є®¤ ў AH):
EXTENDED_CODE:
CMP AH,71 ;Їа®ўҐаЄ Ё¦Ґ© Ја Ёжл
JL REJECT ;Ґб«Ё ¬ҐмиҐ, в® б«Ґ¤гойЁ© бЁ¬ў®«
CMP AH,81 ;Їа®ўҐаЄ ўҐа奩 Ја Ёжл
JL REJECT ;Ґб«Ё Ў®«миҐ, в® б«Ґ¤гойЁ© бЁ¬ў®«
;---AH ᮤҐа¦Ёв бЁ¬ў®« гЇа ў«ҐЁп Єгаб®а®¬, «Ё§Ёа㥬 ҐЈ®:
CMP AH,72 ;"Єгаб®а-ўўҐае"?
JE C_U ;Ґб«Ё ¤ , в® Їа®жҐ¤гаг
CMP AH,80 ;"Єгаб®а-ўЁ§"?
JE C_D ;Ґб«Ё ¤ , в® Їа®жҐ¤гаг
. . .
C_U: CALL CURSOR_UP ;ўл§®ў ᮮ⢥вбвўго饩 Їа®жҐ¤гал
JMP NEXT ;ЇҐаҐе®¤ Є б«Ґ¤го饬г бЁ¬ў®«г
C_D: CALL CURSOR_DOWN ;ўл§®ў ᮮ⢥вбвўго饩 Їа®жҐ¤гал
JMP NEXT ;ЇҐаҐе®¤ Є б«Ґ¤го饬г бЁ¬ў®«г
2.2. ‚ў®¤ б Є« ўЁ вгал - Ї®«г票Ґ бва®ЄЁ бЁ¬ў®«®ў.
DOS ЇаҐ¤®бв ў«пҐв Їа®жҐ¤гал ¤«п ЇаЁҐ¬ бва®ЄЁ бЁ¬ў®«®ў. ЋЁ ўв®¬ вЁзҐбЄЁ
Ї®ўв®апов Їа®жҐ¤гал ўў®¤ ®¤®Ј® бЁ¬ў®« , ®¦Ё¤ п ¦ вЁп Є« ўЁиЁ ўў®¤ ,
бЁЈ «Ё§Ёаго饣® ®Є®з ЁҐ бва®ЄЁ. K®Ґз®, 㦮 ®вўҐбвЁ Ї ¬пвм, ¤®бв в®зго
¤«п ЇаЁҐ¬ ўбҐе бЁ¬ў®«®ў бва®ЄЁ, Ё ¤®«¦ § ЇЁблў вмбп ¤«Ё Є ¦¤®© бва®ЄЁ ¤«п
в®Ј®, зв®Ўл ®в¤Ґ«Ёвм ®¤г бва®Єг ®в ¤агЈ®©. ќв® ¤Ґ« Ґвбп б Ї®¬®ймо ¤ҐбЄаЁЇв®а®ў
бва®ЄЁ, Є®в®алҐ б®бв®пв Ё§ ®¤®Ј® Ё«Ё Ў®«ҐҐ Ў ©в®ў, ᮤҐа¦ йЁе ¤аҐб Ё«Ё ¤«Ёг
бва®ЄЁ. DOS еа Ёв ¤«Ёг бва®ЄЁ Їаאַ ў з «Ґ б ¬®© бва®ЄЁ, Ё Їа®Ја ¬¬Ґ
¤®бв в®з® § вм Ї®«®¦ҐЁҐ бва®ЄЁ ў Ї ¬пвЁ.
”гЄжЁп 0AH ЇаҐалў Ёп 21H Ї®§ў®«пҐв ўў®¤Ёвм бва®Єг ¤«Ё®© ¤® 254-е бЁ¬ў®«®ў,
ўл¤ ў п не® вҐа¬Ё «. ќв Їа®жҐ¤га Їа®¤®«¦ Ґв ўў®¤ Ї®бвгЇ ойЁе бЁ¬ў®«®ў,
Ї®Є Ґ Ўг¤Ґв ¦ в Є« ўЁи ўў®¤ . DS:DX гЄ §лў Ґв ¤аҐб Ї ¬пвЁ, Єг¤
¤®«¦ Ї®¬Ґй вмбп бва®Є . ЏаЁ ўе®¤Ґ ЇҐаўл© Ў ©в ў нв®© Ї®§ЁжЁЁ ¤®«¦Ґ ᮤҐа¦ вм
зЁб«® Ў ©в®ў, ®вў®¤Ё¬ле ¤«п бва®ЄЁ. Џ®б«Ґ в®Ј® Є Є бва®Є ўўҐ¤Ґ , ўв®а®© Ў ©в
¤ бв зЁб«® ॠ«м® ўўҐ¤Ґле бЁ¬ў®«®ў. ‘ ¬ бва®Є зЁ Ґвбп б ваҐв쥣® Ў ©в .
H ¤® ®вўҐбвЁ ¤®бв в®з® Ї ¬пвЁ ¤«п бва®ЄЁ 㦮© ¤«Ёл Ї«об ¤ў Ў ©в ¤«п
¤ҐбЄаЁЇв®а бва®ЄЁ Ё ®¤Ё ¤®Ў ў®зл© Ў ©в ¤«п бЁ¬ў®« ў®§ўа в Є аҐвЄЁ. K®Ј¤
гбв ў«Ёў Ґвбп ¬ ЄбЁ¬ «м п ¤«Ё бва®ЄЁ ў ЇҐаў®¬ Ў ©вҐ, Ґ®Ўе®¤Ё¬® ¤®Ў ўЁвм
1 ¤«п бЁ¬ў®« ў®§ўа в Є аҐвЄЁ. K®¤ ў®§ўа в Є аҐвЄЁ - ASCII 13 - ўў®¤Ёвбп Є Є
Ї®б«Ґ¤Ё© бЁ¬ў®« бва®ЄЁ, ® ® Ґ гзЁвлў Ґвбп ў १г«мв вҐ, Є®в®ал© дгЄжЁп
Ї®¬Ґй Ґв ў® ўв®а®© Ў ©в ¤ҐбЄаЁЇв®а бва®ЄЁ. ’ Є зв® ¤«п Ї®«г票п 50-бЁ¬ў®«м®©
бва®ЄЁ ¤® ®вўҐбвЁ 53 Ў ©в Ї ¬пвЁ Ё Ї®¬ҐбвЁвм ў ЇҐаўл© Ў ©в Є®¤ ASCII 51.
Џ®б«Ґ ўў®¤ 50-вЁ бЁ¬ў®«®ў ўв®а®© Ў ©в Ўг¤Ґв ᮤҐа¦ вм ASCII 50, 53-© Ў ©в
®вўҐ¤Ґ®© Ї ¬пвЁ - ASCII 13.
;---ў ᥣ¬ҐвҐ ¤ ле
STRING DB 53 DUP (?) ;®Ў« бвм ¤«п бва®ЄЁ 50 бЁ¬ў®«®ў
;---Ї®«г票Ґ бва®ЄЁ б Є« ўЁ вгал
LEA DX,STRING ;DS:DX гЄ §лў ов ¤аҐб бва®ЄЁ
MOV BX,DX ;Їгбвм BX ⮦Ґ гЄ §лў Ґв бва®Єг
MOV AL,51 ;гбв ®ўЄ ¤«Ёл бва®ЄЁ (+1 ¤«п CR)
MOV [BX],AL ;Ї®бл« Ґ¬ ў ЇҐаўл© Ў ©в ¤ҐбЄаЁЇв®а
MOV AH,0AH ; ®¬Ґа дгЄжЁЁ
INT 21H ;Ї®«гз Ґ¬ бва®Єг
;---Їа®ўҐаЄ ¤«Ёл бва®ЄЁ
MOV AH,[BX]+1 ;⥯Ґам ¤«Ё ў AH
‚ нв®© Їа®жҐ¤гॠ¬®¦® ЁбЇ®«м§®ў вм ў®§¬®¦®б⨠। ЄвЁа®ў Ёп бва®ЄЁ DOS.
H ¦ вЁҐ Є« ўЁиЁ § Ў®п Ё«Ё бв५ЄЁ-ў«Ґў® г¤ «пҐв бЁ¬ў®« б нЄа Ё Ґ Ї®¬Ґй Ґв
ҐЈ® ў Ї ¬пвм. ђ Ў®в Ґв Є« ўЁи в Ўг«пжЁЁ, а биЁаҐлҐ Є®¤л ЁЈ®аЁаговбп,
¤®ЇгбЄ овбп ЇгбвлҐ бва®ЄЁ (Ё¬ҐҐвбп ўўЁ¤г ў®§ўа в Є аҐвЄЁ, Є®в®а®¬г Ґ
ЇаҐ¤иҐбвўгҐв ¤агЈ®© бЁ¬ў®«). H вҐа¬Ё «Ґ ЇаЁ ¤®бвЁ¦ҐЁЁ Їа ў®Ј® Єа п бва®Є
ЇҐаҐ®бЁвбп б«Ґ¤гойго бва®Єг, ЇаЁ ¤®бвЁ¦ҐЁЁ Їа ў®Ј® Ё¦ҐЈ® гЈ« нЄа
б¤ўЁЈ Ґвбп бва®Єг ўўҐае. K®Ј¤ ўў®¤Ёвбп Ў®«миҐ бЁ¬ў®«®ў, 祬 ®вўҐ¤Ґ® ¬Ґбв
¤«п бва®ЄЁ, «ЁиЁҐ бЁ¬ў®«л ЁЈ®аЁаговбп Ё ўЄ«оз Ґвбп Јг¤®Є ¤Ё ¬ЁЄ . DOS
®ЎҐбЇҐзЁў Ґв Ё ¤агЈ®© бЇ®б®Ў Ї®«г票п бва®ЄЁ, ЇаЁ Є®Ґ¬ Ґ ўлў®¤Ёвбп не®
вҐа¬Ё «. ”гЄжЁп 3FH ЇаҐалў Ёп 21H Ґбвм дгЄжЁп ўў®¤ ®ЎйҐЈ® § 票п,
Є®в®а п з йҐ ўбҐЈ® ЁбЇ®«м§гҐвбп ЇаЁ ¤ЁбЄ®ўле ®ЇҐа жЁпе. Ћ вॡгҐв
ЇаҐ¤®ЇаҐ¤Ґ«Ґ®Ј® ¤ҐбЄаЁЇв®а д ©« (file handle), Є®в®ал© ¤ Ґв Є®¤®ў®Ґ зЁб«®,
ЁбЇ®«м§гҐ¬®Ґ бЁб⥬®© ¤«п ®Ў®§ 票п гбва®©бвў ўў®¤ -ўлў®¤ . „«п Є« ўЁвгал
ЁбЇ®«м§гҐвбп ¤ҐбЄаЁЇв®а 0, Ё ® ¤®«¦Ґ Ї®¬Ґй вмбп ў BX. Џ®¬ҐбвЁвҐ ў DS:DX
¤аҐб, Ї® Є®Ґ¬г ¤®«¦ 室Ёвмбп бва®Є , ў CX - ¬ ЄбЁ¬ «мго ¤«Ёг бва®ЄЁ Ё
ўл§®ўЁвҐ дгЄжЁо:
;---з⥨Ґ бва®ЄЁ ЎҐ§ не
MOV AH,3FH ;®¬Ґа дгЄжЁЁ
MOV BX,0 ;®¬Ґа ¤ҐбЄаЁЇв®а д ©«
LEA DX,STRING_BUFFER ;гЄ § вҐ«м ЎгдҐа ўў®¤ бва®ЄЁ
MOV CX,100 ;¬ ЄбЁ¬ «м п ¤«Ё бва®ЄЁ
INT 21H ;¦¤Ґ¬ ўў®¤
‚ў®¤ бва®ЄЁ § ўҐаи Ґвбп ¦ вЁҐ¬ Є« ўЁиЁ ў®§ўа в Є аҐвЄЁ, Ё DOS ¤®Ў ў«пҐв ў
Є®Ґж бва®ЄЁ ¤ў бЁ¬ў®« : ў®§ўа в Є аҐвЄЁ Ё ЇҐаҐў®¤ бва®ЄЁ (ASCII 13 Ё ASCII
10). €§-§ нвЁе ¤®Ў ў®зле бЁ¬ў®«®ў ЇаЁ гЄ § ЁЁ ¤«Ёл бва®ЄЁ 100 бЁ¬ў®«®ў ®
¬®¦Ґв § Ё¬ вм ¤® 102 Ў ©в®ў Ї ¬пвЁ. „«Ё ўўҐ¤Ґ®© бва®ЄЁ ў®§ўа й Ґвбп ў AX,
Ё нв® § 票Ґ ўЄ«оз Ґв ¤ў бЁ¬ў®« -®Ја ЁзЁвҐ«п.
2.3. ‚лў®¤ бва®ЄЁ бЁ¬ў®«®ў нЄа .
Џа®жҐ¤гал, Є®в®алҐ ўлў®¤пв жҐ«лҐ бва®ЄЁ бЁ¬ў®«®ў, ®зҐм Ї®«Ґ§л, ® ¬®Јгв
Є« ¤лў вм ®Ја ЁзҐЁп ᮤҐа¦Ё¬®Ґ ўлў®¤Ё¬®© бва®ЄЁ. H ¤® ®Ўа й вм ўЁ¬ ЁҐ
в®, Є ЄЁҐ гЇа ў«пойЁҐ Є®¤л (в Ўг«пжЁп, Їа®ЎҐ« Ё Їа.) ЁвҐаЇаҐвЁаговбп,
Є ЄЁҐ Ґв. ”гЄжЁп Ѓ‘‚‚ ЇаҐ¤®бв ў«пҐв Ў®«миЁ© Є®ва®«м ¤ ваЁЎгв ¬Ё бЁ¬ў®«®ў.
”гЄжЁп 9 ЇаҐалў Ёп 21H ўлў®¤Ёв бва®Єг. DS:DX ¤®«¦л гЄ §лў вм ЇҐаўл©
бЁ¬ў®« бва®ЄЁ. ‘ва®Є ¤®«¦ § ўҐаи вмбп бЁ¬ў®«®¬ $, нв® § зЁв, зв® б ¬
бЁ¬ў®« $ Ґ ¬®¦Ґв ўе®¤Ёвм ў бва®Єг. ’ Є®Ґ ®Ја ЁзҐЁҐ ЁбЇ®«м§®ў ЁҐ бЁ¬ў®«
$ ¤Ґ« Ґв дгЄжЁо 9 ЎҐбЇ®«Ґ§®© ¤«п ¬®ЈЁе ЇаЁ«®¦ҐЁ©. ‘ва®Є ¬®¦Ґв Ўлвм «оЎ®©
¤«Ёл. ”гЄжЁп Ґ ЇҐаҐў®¤Ёв ўв®¬ вЁзҐбЄЁ Єгаб®а з «® б«Ґ¤го饩 бва®ЄЁ
Ї®б«Ґ § ўҐаиҐЁп ўлў®¤ . —в®Ўл нв® ўлЇ®«п«®бм, ¤® ¤®Ў ўЁвм ў Є®Ґж бва®ЄЁ
бЁ¬ў®«л 0AH (ЇҐаҐў®¤ бва®ЄЁ) Ё 0DH (ў®§ўа в Є аҐвЄЁ).
;---ў ᥣ¬ҐвҐ ¤ ле
FIRST_STRING DB 'This is the first string',0AH,0DH,'$'
SECOND_STRING DB 'And this is the second string$'
;---ўлў®¤ бва®ЄЁ
MOV AH,9 ;®¬Ґа дгЄжЁЁ ўлў®¤ бва®ЄЁ
LEA DX,FIRST_STRING ;§ Јаг¦ Ґ¬ ¤аҐб ЇҐаў®© бва®ЄЁ
INT 21H ;ЇҐз в Ґ¬ бва®Єг б Ї®§ЁжЁЁ Єгаб®а
LEA DX,SECOND_STRING ;§ Јаг¦ Ґ¬ ¤аҐб ўв®а®© бва®ЄЁ
INT 21H ;ЇҐз в Ґ¬ бва®Єг б з « ®ў®© бва®ЄЁ
ЏаЁ ўлў®¤Ґ ЁвҐаЇаҐвЁаговбп б«Ґ¤гойЁҐ гЇа ў«пойЁҐ Є®¤л:
ASCII 7 §ў®®Є
ASCII 8 ў®§ўа в и Ј (BackSpace)
ASCII 9 в Ўг«пжЁп
ASCII 10 ЇҐаҐў®¤ бва®ЄЁ
ASCII 13 ў®§ўа в Є аҐвЄЁ
”гЄжЁп DOS 40H ЇаҐалў Ёп 21H ⮦Ґ Ї®«Ґ§ ЇаЁ ўлў®¤Ґ бва®Є нЄа . Ћ
вॡгҐв, зв®Ўл Ўл« Ё§ўҐбв ¤«Ё бва®ЄЁ, Ї®бЄ®«мЄг Ґ© Ґ вॡгҐвбп бЁ¬ў®«-
®Ја ЁзЁвҐ«м; нв дгЄжЁп ®б®ЎҐ® 㤮Ў ¤«п ¤ ¬Ї ⥪бв®ўле д ©«®ў нЄа .
€б室® ® Ўл« ЇаҐ¤ § зҐ ¤«п ўлў®¤ ў д ©«. Ћ вॡгҐв ¤ҐбЄаЁЇв®а ,
Є®в®ал© Ґбвм Ё¤ҐвЁдЁЄ жЁ®л© ®¬Ґа ¤«п Є®ЄаҐв®Ј® д ©« Ё«Ё гбва®©бвў .
„ЁбЇ«Ґ© Ё¬ҐҐв § а ҐҐ ЇаҐ¤ § зҐл© ¤ҐбЄаЁЇв®а #1. H ¤® Ї®¬ҐбвЁвм ¤ҐбЄаЁЇв®а
ў BX, зЁб«® Ў ©в®ў бва®ЄЁ - ў CX. DS:DX ¤®«¦л гЄ §лў вм бва®Єг. ”гЄжЁп
ўлў®¤Ёв ⥪бв б ®а¬ «мл¬Ё ваЁЎгв ¬Ё (ЎҐ«л© зҐа®¬). ЌҐ 㦮
ЇаҐ¤ў аЁвҐ«м® "®вЄалў вм" ¤ЁбЇ«Ґ©, Є Є нв® ¤Ґ« Ґвбп б ¤агЈЁ¬Ё д ©« ¬Ё ЇаЁ
ЁбЇ®«м§®ў ЁЁ нв®© дгЄжЁЁ. ‚®в ЇаЁ¬Ґа:
;---ўлў®¤ 1000 Ў ©в®ў ⥪бв
MOV AH,40H ;®¬Ґа дгЄжЁЁ
MOV BX,1 ;¤ҐбЄаЁЇв®а ¤ЁбЇ«Ґп
LEA DX,STRING ;§ Ја¦ Ґ¬ ¤аҐб бва®ЄЁ
MOV CX,1000 ;зЁб«® ўлў®¤Ё¬ле Ў ©в®ў
INT 21H
DOS ЇаҐ¤®бв ў«пҐв Ў®а Esc-Ї®б«Ґ¤®ў ⥫м®б⥩, Є®в®алҐ бгвм бЇҐжЁ «млҐ
гЇа ў«пойЁҐ бва®ЄЁ ¤«п ЇЇ а вгал. K®Ј¤ ®Ё ўлў®¤пвбп б Ї®¬®ймо дгЄжЁЁ 9
ЇаҐалў Ёп 21H, ®Ё ¬®Јгв гЇа ў«пвм Єгаб®а®¬, ०Ё¬®¬ ¤ЁбЇ«Ґп, 梥⮬ бЁ¬ў®«®ў
Ё ҐЄ®в®ал¬Ё ў®§¬®¦®бвп¬Ё Є« ўЁ вгал. K®Ј¤ Їа®Ја ¬¬ ўлў®¤Ёв нЄа ¬®Ј®
бва®Є, Esc-Ї®б«Ґ¤®ў ⥫м®бвЁ з бв® ¤ ов б ¬л© г¤®Ўл© бЇ®б®Ў Ї®§ЁжЁ®Ёа®ў Ёп
Єгаб®а Ё гбв ®ўЄЁ 梥в бва®ЄЁ - Ї®в®¬г зв® б ¬Ё а бб¬ ваЁў овбп Їа®бв® Є Є
®зҐаҐ¤лҐ бва®ЄЁ ў бҐаЁЁ ўлў®¤Ё¬ле бва®Є.
”гЄжЁп 13H ЇаҐалў Ёп 10H ўлў®¤Ёв бва®Єг. ES:BP ¤®«¦л гЄ §лў вм бва®Єг,
¤«Ё бва®ЄЁ ¤®«¦ Ўлвм ў CX. DX гЄ §лў Ґв Ї®§ЁжЁо Єгаб®а , б Є®в®а®© ¤®«¦
зЁ вмбп бва®Є (ўлзЁб«пҐ¬го Є Є ᬥ饨Ґ ®в з « бва Ёжл, Є®в®аго Ё¤Ґв
ўлў®¤, ЎҐ§ гзҐв Ў ©в®ў ваЁЎгв®ў). ‚ BX ¤®«¦Ґ гЄ §лў вмбп ®¬Ґа бва Ёжл.
H Є®Ґж, ®¬Ґа Є®¤ ®в 0 ¤® 3, ᮤҐа¦Ё¬л© ў AL, гЄ §лў Ґв, Є Є ¤®«¦
ўлў®¤Ёвмбп бва®Є :
AL = 0 - бва®Є б®бв®Ёв в®«мЄ® Ё§ бЁ¬ў®«®ў, Єгаб®а ҐЇ®¤ўЁ¦Ґ
AL = 1 - бва®Є б®бв®Ёв в®«мЄ® Ё§ бЁ¬ў®«®ў, Єгаб®а ¤ўЁ¦Ґвбп
AL = 2 - ў бва®ЄҐ зҐаҐ¤говбп бЁ¬ў®«л Ё ваЁЎгвл, Єгаб®а ҐЇ®¤ўЁ¦Ґ
AL = 3 - ў бва®ЄҐ зҐаҐ¤говбп бЁ¬ў®«л Ё ваЁЎгвл, Єгаб®а ¤ўЁ¦Ґвбп
K®Ј¤ AL а ў® 0 Ё«Ё 1, ваЁЎгвл ¤®«¦л 室Ёвмбп ў BL. ‚ᥠᨬў®«л Ўг¤гв
ўлў®¤Ёвмбп б нвЁ¬Ё ваЁЎгв ¬Ё. ќв дгЄжЁп ЁвҐаЇаҐвЁагҐв ў®§ўа в и Ј,
ЇҐаҐў®¤ бва®ЄЁ, ў®§ўа в Є аҐвЄЁ Ё §ў®®Є Є Є гЇа ў«пойЁҐ Є®¬ ¤л, Ґ Є Є
ЇҐз в Ґ¬лҐ бЁ¬ў®«л.
3. ‘®¤Ґа¦ ЁҐ ®взҐв
1) ®¬Ґа Ё §ў ЁҐ а Ў®вл
2) 楫м а Ў®вл
3) Ё¤ЁўЁ¤г «м®Ґ § ¤ ЁҐ а Ў®вг
4) гЄ § ЁҐ Ё¬Ґ Ёб室®Ј® Ё ЁбЇ®«пҐ¬®Ј® д ©«®ў
5) ўлў®¤л
ЋвзҐв ЇаҐ¤бв ў«пҐвбп ў ўЁ¤Ґ ⥪бв®ў®Ј® д ©« , ўлЇ®«Ґ®Ј® ў д®а¬ ⥠DOS
(Є®¤®ў п бва Ёж 866). Љ ®взҐвг ¤®«¦л ЇаЁ« Ј вмбп д ©« Ёб室®Ј® Є®¤
Їа®Ја ¬¬л, а Ў®зЁ© ЁбЇ®«пҐ¬л© д ©« Ё д ©« ўлў®¤ Їа®Ја ¬¬л.
4. ‡ ¤ ЁҐ а Ў®вг
ЏаЁ ўлЇ®«ҐЁЁ нв®© а Ў®вл ¬®¦Ґв Ўлвм Ї®«Ґ§® ЇаЁ«®¦ҐЁҐ "ASCII.docx".
1. ђ §®Ўа вмбп ў ЇаЁўҐ¤Ґле ¬ вҐаЁ « е.
2. ‘Є®ЇЁа®ў вм ў бў®© а Ў®зЁ© Є в «®Ј ⥪бв бў®Ґ© Їа®Ја ¬¬л Ї® ЇаҐ¦Ґ¬г § ¤ Ёо
⥬л "11 €бЇ®«м§®ў ЁҐ ўҐиЁе Їа®жҐ¤га" Ё«Ё "12 €бЇ®«м§®ў ЁҐ ¬ Єа®б।бвў"
(Ї® ўлЎ®аг).
3. „®Ї®«Ёвм нв®в ⥪бв ᮮ⢥вб⢥® § ¤ Ёо. Џа®Ја ¬¬ ¤®«¦ ®ЎҐбЇҐзЁў вм:
1) § Їа®б Ё¬ҐЁ Ї®«м§®ў вҐ«п Ё ўў®¤ Ё¬ҐЁ б Є« ўЁ вгал;
2) ЁбЇ®«м§®ў ЁҐ нв®Ј® Ё¬ҐЁ ЇаЁ ўлў®¤Ґ १г«мв в®ў ўлзЁб«ҐЁ©;
3) § Їа®б § 票© ЇҐаҐ¬Ґле Ё ўў®¤ Ёе б Є« ўЁ вгал;
4) ўлў®¤ Ё¬ҐЁ Ї®«м§®ў ⥫п, Ё¬ҐЁ Їа®Ја ¬¬л, Ё¬Ґ ЇҐаҐ¬Ґле б ўўҐ¤Ґл¬Ё
§ 票ﬨ, ўлў®¤ १г«мв в ўлзЁб«ҐЁ©.
ЏаЁ н⮬ б«Ґ¤гҐв ¤Ґ©бвў®ў вм Ї® нв Ї ¬, ¤®Ї®«пп ⥪бв г¦л¬Ё да Ј¬Ґв ¬Ё,
бᥬЎ«Ёагп Ё ®в« ¦Ёў п Ї®«гзҐго ўҐабЁо Їа®Ја ¬¬л. Љ ¦¤л© а § б«Ґ¤гҐв
§ ЇЁб вм ў ®взҐв Єа вЄ®Ґ ®ЇЁб ЁҐ бў®Ёе ¤Ґ©бвўЁ© Ё Ёе १г«мв в.
4. ЂбᥬЎ«Ёа®ў вм Їа®Ја ¬¬г Ё гЎҐ¤Ёвмбп ў ®вбгвбвўЁЁ ®иЁЎ®Є.
5. ‘Є®¬Ї®®ў вм Їа®Ја ¬¬г.
6. ‚лЇ®«Ёвм Ї®«гзҐл© EXE-¬®¤г«м Ё Їа®ўҐаЁвм १г«мв в ўлзЁб«ҐЁ©.
‡ ЇЁб вм १г«мв в ўлзЁб«ҐЁ© ў ®взҐв.
7. ЏаҐ¤бв ўЁвм а Ў®вг Їа®Ја ¬¬л ЇаҐЇ®¤ ў ⥫о.
**********************************************************************
**********************************************************************
‘€‘’…ЊЌЋ… ЏђЋѓђЂЊЊ€ђЋ‚ЂЌ€…
**********************************************************************
*******************
*** ’Ґ¬ 13 ***
*******************
**********************************************************************
‚‚Ћ„-‚›‚Ћ„ ’…Љ‘’Ћ‚Ћ‰ €Ќ”ЋђЊЂ–€€ ‘ђ…„‘’‚ЂЊ€ BIOS Ё DOS
**********************************************************************
–Ґ«м а Ў®вл:
Ќ ЇЁб вм п§лЄҐ бᥬЎ«Ґа Їа®Ја ¬¬г ®б®ўҐ § ¤ Ё© Ї® ⥬Ґ
"11 €бЇ®«м§®ў ЁҐ ўҐиЁе Їа®жҐ¤га" Ё«Ё "12 €бЇ®«м§®ў ЁҐ ¬ Єа®б।бвў",
ЁбЇ®«м§гойго ®ЇҐа жЁЁ ўў®¤ б Є« ўЁ вгал Ё ўлў®¤ нЄа ®б®ўҐ
ЇаҐалў Ё© DOS Ё Ѓ‘‚‚.
1. ‡ ¤ ЁҐ ЇаҐ¤ў аЁвҐ«мго Ї®¤Ј®в®ўЄг
Ћ§ Є®¬Ёвмбп б ᮤҐа¦ ЁҐ¬ агЄ®ў®¤бвў
€§гзЁвм ЇаЁўҐ¤Ґл© ⥮аҐвЁзҐбЄЁ© ¬ вҐаЁ «
‚лЇ®«Ёвм Їа ЄвЁзҐбЄго з бвм а Ў®вл
‘®бв ўЁвм ®взҐв ® а Ў®вҐ
ЏаҐ¤кпўЁвм १г«мв вл а Ў®вл ЇаҐЇ®¤ ў ⥫о
2. Ља вЄЁҐ ⥮аҐвЁзҐбЄЁҐ ᢥ¤ҐЁп
2.1. ‚ў®¤ б Є« ўЁ вгал - Їа®жҐ¤га ўў®¤ б Є« ўЁ вгал ®ЎйҐЈ® § 票п.
‘Ёб⥬ Є®¤®ў, ЁбЇ®«м§гҐ¬ле Є« ўЁ вга®©, Ґ Ї®¤¤ Ґвбп Їа®бв®© Ёв९аҐв жЁЁ.
K®¤л ¬®Јгв Ё¬Ґвм ¤«Ёг ®¤Ё Ё«Ё ¤ў Ў ©в , Ё Ґв Їа®бв®Ј® ᮮ⢥вбвўЁп ¬Ґ¦¤г
¤«Ё®© Є®¤ Ё ⥬, б«г¦Ёв «Ё ® ¤«п ®Ў®§ 票п бЁ¬ў®« Ё«Ё ¤«п гЇа ў«ҐЁп.
HҐ ўбҐ Є®¬ЎЁ жЁЁ Є« ўЁи ¤ ¦Ґ ўл¤ ов гЁЄ «мл© Є®¤, Ї®н⮬㠥®Ўе®¤Ё¬л
¤®Ў ў®злҐ гбЁ«Ёп, зв®Ўл а §«ЁзЁвм Ёе. HЁ Є®¤л ASCII, Ё а биЁаҐлҐ Є®¤л Ґ
гЇ®а冷зҐл в Є, зв®Ўл Ї®§ў®«п« бм Ёе Їа®бв п ЈагЇЇЁа®ўЄ Ё Їа®ўҐаЄ ®иЁЎ®Є.
’ Є зв® Їа®жҐ¤га ўў®¤ б Є« ўЁ вгал ®ЎйҐЈ® § 票п вॡгҐв е«®Ї®в«Ёў®Ј®
Їа®Ја ¬¬Ёа®ў Ёп.
ЏаЁўҐ¤Ґл© ЇаЁ¬Ґа ®в«Ёз Ґвбп ⥬, зв®, Є®Ј¤ ўбв Ґв ў®Їа®б ® ⮬, ў®§ЁЄ «Ё
Ї®«гзҐл© Є®¤ ЇаЁ ¦ вЁЁ ®¤®© Є« ўЁиЁ «ЁЎ® ў Є®¬ЎЁ жЁЁ б Є« ўЁиҐ© Ctrl,
Їа®ўҐапҐвбп бЄ -Є®¤ (Єбв вЁ, бЄ -Є®¤ § Ї®¬Ё Ґвбп ў ЎгдҐаҐ Є« ўЁ вгал).
;---Ї®«г票Ґ Є®¤ ¦ в®© Є« ўЁиЁ Ё ®ЇаҐ¤Ґ«ҐЁҐ ҐЈ® вЁЇ
NEXT: MOV AH,0 ;дгЄжЁп ўў®¤ б Є« ўЁ вгал BIOS
INT 16H ;Ї®«гз Ґ¬ ўўҐ¤Ґл© Є®¤
CMP AL,0 ;Їа®ўҐаЄ а биЁаҐл© Є®¤
JE EXTENDED_CODE ;Ґб«Ё ¤ , в® бЇҐжЁ «мго Їа®жҐ¤гаг
CMP AL,32 ;Їа®ўҐаЄ гЇа ў«пойЁ© бЁ¬ў®«
JL CONTROL_CODE ;Ґб«Ё ¤ , в® бЇҐжЁ «мго Їа®жҐ¤гаг
CMP AL,65 ;Ґб«Ё бЁ¬ў®« Ґ ўе®¤Ёв ў Ў®а ЇЁиг饩
JL NEXT ; ¬ иЁЄЁ, в® ЎҐаҐ¬ б«Ґ¤гойЁ©
CMP AL,123
JL NEXT
;---⥯Ґам ®Ўа Ў влў Ґ¬ бЁ¬ў®« ў AL
STOSB ;§ Ї®¬Ё Ґ¬ бЁ¬ў®« Ї® ¤аҐбг ES:DI
MOV AH,2 ;дгЄжЁп ўлў®¤ бЁ¬ў®« нЄа
MOV DL,AL ;Ї®¬Ґй Ґ¬ бЁ¬ў®« ў DL ЇҐаҐ¤ ўлў®¤®¬
INT 21H ;ўлў®¤Ё¬ ҐЈ® нЄа
. . .
JMP NEXT ;ЇҐаҐе®¤Ё¬ Є б«Ґ¤го饬г бЁ¬ў®«г
;--- «Ё§Ёа㥬 гЇа ў«пойЁҐ Є®¤л
CONTROL_CODE:
CMP AL,13 ;Є®¤ ASCII 13?
JNE TAB ;Ґб«Ё Ґв, в® б«Ґ¤гой п Їа®ўҐаЄ
CMP AH,28 ;Ё зҐ Їа®ўҐа塞 бЄ -Є®¤ <CR>
JNE C_M ;Ґб«Ё Ґв, в® Ўл«® Ctrl-M
CALL CARRIAGE_RET ;®Ўа Ў®вЄ ў®§ўа в Є аҐвЄЁ
JMP NEXT ;ЇҐаҐе®¤ Є б«Ґ¤го饬г бЁ¬ў®«г
C_M: CALL CTRL_M ;®Ўа Ў®вЄ Ctrl-M
JMP NEXT ;ЇҐаҐе®¤ Є б«Ґ¤го饬г бЁ¬ў®«г
TAB: CMP AL,9 ;Їа®ўҐаЄ в Ўг«пжЁо
. . .
CMP AL,10 ;§ ⥬ Їа®ўҐаЄ ¤агЈЁе
. . .
REJECT: JMP NEXT ;ЇҐаҐе®¤ Є б«Ґ¤го饬г бЁ¬ў®«г
;--- «Ё§ а биЁаҐле Є®¤®ў (ўв®а®© Ў ©в Є®¤ ў AH):
EXTENDED_CODE:
CMP AH,71 ;Їа®ўҐаЄ Ё¦Ґ© Ја Ёжл
JL REJECT ;Ґб«Ё ¬ҐмиҐ, в® б«Ґ¤гойЁ© бЁ¬ў®«
CMP AH,81 ;Їа®ўҐаЄ ўҐа奩 Ја Ёжл
JL REJECT ;Ґб«Ё Ў®«миҐ, в® б«Ґ¤гойЁ© бЁ¬ў®«
;---AH ᮤҐа¦Ёв бЁ¬ў®« гЇа ў«ҐЁп Єгаб®а®¬, «Ё§Ёа㥬 ҐЈ®:
CMP AH,72 ;"Єгаб®а-ўўҐае"?
JE C_U ;Ґб«Ё ¤ , в® Їа®жҐ¤гаг
CMP AH,80 ;"Єгаб®а-ўЁ§"?
JE C_D ;Ґб«Ё ¤ , в® Їа®жҐ¤гаг
. . .
C_U: CALL CURSOR_UP ;ўл§®ў ᮮ⢥вбвўго饩 Їа®жҐ¤гал
JMP NEXT ;ЇҐаҐе®¤ Є б«Ґ¤го饬г бЁ¬ў®«г
C_D: CALL CURSOR_DOWN ;ўл§®ў ᮮ⢥вбвўго饩 Їа®жҐ¤гал
JMP NEXT ;ЇҐаҐе®¤ Є б«Ґ¤го饬г бЁ¬ў®«г
2.2. ‚ў®¤ б Є« ўЁ вгал - Ї®«г票Ґ бва®ЄЁ бЁ¬ў®«®ў.
DOS ЇаҐ¤®бв ў«пҐв Їа®жҐ¤гал ¤«п ЇаЁҐ¬ бва®ЄЁ бЁ¬ў®«®ў. ЋЁ ўв®¬ вЁзҐбЄЁ
Ї®ўв®апов Їа®жҐ¤гал ўў®¤ ®¤®Ј® бЁ¬ў®« , ®¦Ё¤ п ¦ вЁп Є« ўЁиЁ ўў®¤ ,
бЁЈ «Ё§Ёаго饣® ®Є®з ЁҐ бва®ЄЁ. K®Ґз®, 㦮 ®вўҐбвЁ Ї ¬пвм, ¤®бв в®зго
¤«п ЇаЁҐ¬ ўбҐе бЁ¬ў®«®ў бва®ЄЁ, Ё ¤®«¦ § ЇЁблў вмбп ¤«Ё Є ¦¤®© бва®ЄЁ ¤«п
в®Ј®, зв®Ўл ®в¤Ґ«Ёвм ®¤г бва®Єг ®в ¤агЈ®©. ќв® ¤Ґ« Ґвбп б Ї®¬®ймо ¤ҐбЄаЁЇв®а®ў
бва®ЄЁ, Є®в®алҐ б®бв®пв Ё§ ®¤®Ј® Ё«Ё Ў®«ҐҐ Ў ©в®ў, ᮤҐа¦ йЁе ¤аҐб Ё«Ё ¤«Ёг
бва®ЄЁ. DOS еа Ёв ¤«Ёг бва®ЄЁ Їаאַ ў з «Ґ б ¬®© бва®ЄЁ, Ё Їа®Ја ¬¬Ґ
¤®бв в®з® § вм Ї®«®¦ҐЁҐ бва®ЄЁ ў Ї ¬пвЁ.
”гЄжЁп 0AH ЇаҐалў Ёп 21H Ї®§ў®«пҐв ўў®¤Ёвм бва®Єг ¤«Ё®© ¤® 254-е бЁ¬ў®«®ў,
ўл¤ ў п не® вҐа¬Ё «. ќв Їа®жҐ¤га Їа®¤®«¦ Ґв ўў®¤ Ї®бвгЇ ойЁе бЁ¬ў®«®ў,
Ї®Є Ґ Ўг¤Ґв ¦ в Є« ўЁи ўў®¤ . DS:DX гЄ §лў Ґв ¤аҐб Ї ¬пвЁ, Єг¤
¤®«¦ Ї®¬Ґй вмбп бва®Є . ЏаЁ ўе®¤Ґ ЇҐаўл© Ў ©в ў нв®© Ї®§ЁжЁЁ ¤®«¦Ґ ᮤҐа¦ вм
зЁб«® Ў ©в®ў, ®вў®¤Ё¬ле ¤«п бва®ЄЁ. Џ®б«Ґ в®Ј® Є Є бва®Є ўўҐ¤Ґ , ўв®а®© Ў ©в
¤ бв зЁб«® ॠ«м® ўўҐ¤Ґле бЁ¬ў®«®ў. ‘ ¬ бва®Є зЁ Ґвбп б ваҐв쥣® Ў ©в .
H ¤® ®вўҐбвЁ ¤®бв в®з® Ї ¬пвЁ ¤«п бва®ЄЁ 㦮© ¤«Ёл Ї«об ¤ў Ў ©в ¤«п
¤ҐбЄаЁЇв®а бва®ЄЁ Ё ®¤Ё ¤®Ў ў®зл© Ў ©в ¤«п бЁ¬ў®« ў®§ўа в Є аҐвЄЁ. K®Ј¤
гбв ў«Ёў Ґвбп ¬ ЄбЁ¬ «м п ¤«Ё бва®ЄЁ ў ЇҐаў®¬ Ў ©вҐ, Ґ®Ўе®¤Ё¬® ¤®Ў ўЁвм
1 ¤«п бЁ¬ў®« ў®§ўа в Є аҐвЄЁ. K®¤ ў®§ўа в Є аҐвЄЁ - ASCII 13 - ўў®¤Ёвбп Є Є
Ї®б«Ґ¤Ё© бЁ¬ў®« бва®ЄЁ, ® ® Ґ гзЁвлў Ґвбп ў १г«мв вҐ, Є®в®ал© дгЄжЁп
Ї®¬Ґй Ґв ў® ўв®а®© Ў ©в ¤ҐбЄаЁЇв®а бва®ЄЁ. ’ Є зв® ¤«п Ї®«г票п 50-бЁ¬ў®«м®©
бва®ЄЁ ¤® ®вўҐбвЁ 53 Ў ©в Ї ¬пвЁ Ё Ї®¬ҐбвЁвм ў ЇҐаўл© Ў ©в Є®¤ ASCII 51.
Џ®б«Ґ ўў®¤ 50-вЁ бЁ¬ў®«®ў ўв®а®© Ў ©в Ўг¤Ґв ᮤҐа¦ вм ASCII 50, 53-© Ў ©в
®вўҐ¤Ґ®© Ї ¬пвЁ - ASCII 13.
;---ў ᥣ¬ҐвҐ ¤ ле
STRING DB 53 DUP (?) ;®Ў« бвм ¤«п бва®ЄЁ 50 бЁ¬ў®«®ў
;---Ї®«г票Ґ бва®ЄЁ б Є« ўЁ вгал
LEA DX,STRING ;DS:DX гЄ §лў ов ¤аҐб бва®ЄЁ
MOV BX,DX ;Їгбвм BX ⮦Ґ гЄ §лў Ґв бва®Єг
MOV AL,51 ;гбв ®ўЄ ¤«Ёл бва®ЄЁ (+1 ¤«п CR)
MOV [BX],AL ;Ї®бл« Ґ¬ ў ЇҐаўл© Ў ©в ¤ҐбЄаЁЇв®а
MOV AH,0AH ; ®¬Ґа дгЄжЁЁ
INT 21H ;Ї®«гз Ґ¬ бва®Єг
;---Їа®ўҐаЄ ¤«Ёл бва®ЄЁ
MOV AH,[BX]+1 ;⥯Ґам ¤«Ё ў AH
‚ нв®© Їа®жҐ¤гॠ¬®¦® ЁбЇ®«м§®ў вм ў®§¬®¦®б⨠। ЄвЁа®ў Ёп бва®ЄЁ DOS.
H ¦ вЁҐ Є« ўЁиЁ § Ў®п Ё«Ё бв५ЄЁ-ў«Ґў® г¤ «пҐв бЁ¬ў®« б нЄа Ё Ґ Ї®¬Ґй Ґв
ҐЈ® ў Ї ¬пвм. ђ Ў®в Ґв Є« ўЁи в Ўг«пжЁЁ, а биЁаҐлҐ Є®¤л ЁЈ®аЁаговбп,
¤®ЇгбЄ овбп ЇгбвлҐ бва®ЄЁ (Ё¬ҐҐвбп ўўЁ¤г ў®§ўа в Є аҐвЄЁ, Є®в®а®¬г Ґ
ЇаҐ¤иҐбвўгҐв ¤агЈ®© бЁ¬ў®«). H вҐа¬Ё «Ґ ЇаЁ ¤®бвЁ¦ҐЁЁ Їа ў®Ј® Єа п бва®Є
ЇҐаҐ®бЁвбп б«Ґ¤гойго бва®Єг, ЇаЁ ¤®бвЁ¦ҐЁЁ Їа ў®Ј® Ё¦ҐЈ® гЈ« нЄа
б¤ўЁЈ Ґвбп бва®Єг ўўҐае. K®Ј¤ ўў®¤Ёвбп Ў®«миҐ бЁ¬ў®«®ў, 祬 ®вўҐ¤Ґ® ¬Ґбв
¤«п бва®ЄЁ, «ЁиЁҐ бЁ¬ў®«л ЁЈ®аЁаговбп Ё ўЄ«оз Ґвбп Јг¤®Є ¤Ё ¬ЁЄ . DOS
®ЎҐбЇҐзЁў Ґв Ё ¤агЈ®© бЇ®б®Ў Ї®«г票п бва®ЄЁ, ЇаЁ Є®Ґ¬ Ґ ўлў®¤Ёвбп не®
вҐа¬Ё «. ”гЄжЁп 3FH ЇаҐалў Ёп 21H Ґбвм дгЄжЁп ўў®¤ ®ЎйҐЈ® § 票п,
Є®в®а п з йҐ ўбҐЈ® ЁбЇ®«м§гҐвбп ЇаЁ ¤ЁбЄ®ўле ®ЇҐа жЁпе. Ћ вॡгҐв
ЇаҐ¤®ЇаҐ¤Ґ«Ґ®Ј® ¤ҐбЄаЁЇв®а д ©« (file handle), Є®в®ал© ¤ Ґв Є®¤®ў®Ґ зЁб«®,
ЁбЇ®«м§гҐ¬®Ґ бЁб⥬®© ¤«п ®Ў®§ 票п гбва®©бвў ўў®¤ -ўлў®¤ . „«п Є« ўЁвгал
ЁбЇ®«м§гҐвбп ¤ҐбЄаЁЇв®а 0, Ё ® ¤®«¦Ґ Ї®¬Ґй вмбп ў BX. Џ®¬ҐбвЁвҐ ў DS:DX
¤аҐб, Ї® Є®Ґ¬г ¤®«¦ 室Ёвмбп бва®Є , ў CX - ¬ ЄбЁ¬ «мго ¤«Ёг бва®ЄЁ Ё
ўл§®ўЁвҐ дгЄжЁо:
;---з⥨Ґ бва®ЄЁ ЎҐ§ не
MOV AH,3FH ;®¬Ґа дгЄжЁЁ
MOV BX,0 ;®¬Ґа ¤ҐбЄаЁЇв®а д ©«
LEA DX,STRING_BUFFER ;гЄ § вҐ«м ЎгдҐа ўў®¤ бва®ЄЁ
MOV CX,100 ;¬ ЄбЁ¬ «м п ¤«Ё бва®ЄЁ
INT 21H ;¦¤Ґ¬ ўў®¤
‚ў®¤ бва®ЄЁ § ўҐаи Ґвбп ¦ вЁҐ¬ Є« ўЁиЁ ў®§ўа в Є аҐвЄЁ, Ё DOS ¤®Ў ў«пҐв ў
Є®Ґж бва®ЄЁ ¤ў бЁ¬ў®« : ў®§ўа в Є аҐвЄЁ Ё ЇҐаҐў®¤ бва®ЄЁ (ASCII 13 Ё ASCII
10). €§-§ нвЁе ¤®Ў ў®зле бЁ¬ў®«®ў ЇаЁ гЄ § ЁЁ ¤«Ёл бва®ЄЁ 100 бЁ¬ў®«®ў ®
¬®¦Ґв § Ё¬ вм ¤® 102 Ў ©в®ў Ї ¬пвЁ. „«Ё ўўҐ¤Ґ®© бва®ЄЁ ў®§ўа й Ґвбп ў AX,
Ё нв® § 票Ґ ўЄ«оз Ґв ¤ў бЁ¬ў®« -®Ја ЁзЁвҐ«п.
2.3. ‚лў®¤ бва®ЄЁ бЁ¬ў®«®ў нЄа .
Џа®жҐ¤гал, Є®в®алҐ ўлў®¤пв жҐ«лҐ бва®ЄЁ бЁ¬ў®«®ў, ®зҐм Ї®«Ґ§л, ® ¬®Јгв
Є« ¤лў вм ®Ја ЁзҐЁп ᮤҐа¦Ё¬®Ґ ўлў®¤Ё¬®© бва®ЄЁ. H ¤® ®Ўа й вм ўЁ¬ ЁҐ
в®, Є ЄЁҐ гЇа ў«пойЁҐ Є®¤л (в Ўг«пжЁп, Їа®ЎҐ« Ё Їа.) ЁвҐаЇаҐвЁаговбп,
Є ЄЁҐ Ґв. ”гЄжЁп Ѓ‘‚‚ ЇаҐ¤®бв ў«пҐв Ў®«миЁ© Є®ва®«м ¤ ваЁЎгв ¬Ё бЁ¬ў®«®ў.
”гЄжЁп 9 ЇаҐалў Ёп 21H ўлў®¤Ёв бва®Єг. DS:DX ¤®«¦л гЄ §лў вм ЇҐаўл©
бЁ¬ў®« бва®ЄЁ. ‘ва®Є ¤®«¦ § ўҐаи вмбп бЁ¬ў®«®¬ $, нв® § зЁв, зв® б ¬
бЁ¬ў®« $ Ґ ¬®¦Ґв ўе®¤Ёвм ў бва®Єг. ’ Є®Ґ ®Ја ЁзҐЁҐ ЁбЇ®«м§®ў ЁҐ бЁ¬ў®«
$ ¤Ґ« Ґв дгЄжЁо 9 ЎҐбЇ®«Ґ§®© ¤«п ¬®ЈЁе ЇаЁ«®¦ҐЁ©. ‘ва®Є ¬®¦Ґв Ўлвм «оЎ®©
¤«Ёл. ”гЄжЁп Ґ ЇҐаҐў®¤Ёв ўв®¬ вЁзҐбЄЁ Єгаб®а з «® б«Ґ¤го饩 бва®ЄЁ
Ї®б«Ґ § ўҐаиҐЁп ўлў®¤ . —в®Ўл нв® ўлЇ®«п«®бм, ¤® ¤®Ў ўЁвм ў Є®Ґж бва®ЄЁ
бЁ¬ў®«л 0AH (ЇҐаҐў®¤ бва®ЄЁ) Ё 0DH (ў®§ўа в Є аҐвЄЁ).
;---ў ᥣ¬ҐвҐ ¤ ле
FIRST_STRING DB 'This is the first string',0AH,0DH,'$'
SECOND_STRING DB 'And this is the second string$'
;---ўлў®¤ бва®ЄЁ
MOV AH,9 ;®¬Ґа дгЄжЁЁ ўлў®¤ бва®ЄЁ
LEA DX,FIRST_STRING ;§ Јаг¦ Ґ¬ ¤аҐб ЇҐаў®© бва®ЄЁ
INT 21H ;ЇҐз в Ґ¬ бва®Єг б Ї®§ЁжЁЁ Єгаб®а
LEA DX,SECOND_STRING ;§ Јаг¦ Ґ¬ ¤аҐб ўв®а®© бва®ЄЁ
INT 21H ;ЇҐз в Ґ¬ бва®Єг б з « ®ў®© бва®ЄЁ
ЏаЁ ўлў®¤Ґ ЁвҐаЇаҐвЁаговбп б«Ґ¤гойЁҐ гЇа ў«пойЁҐ Є®¤л:
ASCII 7 §ў®®Є
ASCII 8 ў®§ўа в и Ј (BackSpace)
ASCII 9 в Ўг«пжЁп
ASCII 10 ЇҐаҐў®¤ бва®ЄЁ
ASCII 13 ў®§ўа в Є аҐвЄЁ
”гЄжЁп DOS 40H ЇаҐалў Ёп 21H ⮦Ґ Ї®«Ґ§ ЇаЁ ўлў®¤Ґ бва®Є нЄа . Ћ
вॡгҐв, зв®Ўл Ўл« Ё§ўҐбв ¤«Ё бва®ЄЁ, Ї®бЄ®«мЄг Ґ© Ґ вॡгҐвбп бЁ¬ў®«-
®Ја ЁзЁвҐ«м; нв дгЄжЁп ®б®ЎҐ® 㤮Ў ¤«п ¤ ¬Ї ⥪бв®ўле д ©«®ў нЄа .
€б室® ® Ўл« ЇаҐ¤ § зҐ ¤«п ўлў®¤ ў д ©«. Ћ вॡгҐв ¤ҐбЄаЁЇв®а ,
Є®в®ал© Ґбвм Ё¤ҐвЁдЁЄ жЁ®л© ®¬Ґа ¤«п Є®ЄаҐв®Ј® д ©« Ё«Ё гбва®©бвў .
„ЁбЇ«Ґ© Ё¬ҐҐв § а ҐҐ ЇаҐ¤ § зҐл© ¤ҐбЄаЁЇв®а #1. H ¤® Ї®¬ҐбвЁвм ¤ҐбЄаЁЇв®а
ў BX, зЁб«® Ў ©в®ў бва®ЄЁ - ў CX. DS:DX ¤®«¦л гЄ §лў вм бва®Єг. ”гЄжЁп
ўлў®¤Ёв ⥪бв б ®а¬ «мл¬Ё ваЁЎгв ¬Ё (ЎҐ«л© зҐа®¬). ЌҐ 㦮
ЇаҐ¤ў аЁвҐ«м® "®вЄалў вм" ¤ЁбЇ«Ґ©, Є Є нв® ¤Ґ« Ґвбп б ¤агЈЁ¬Ё д ©« ¬Ё ЇаЁ
ЁбЇ®«м§®ў ЁЁ нв®© дгЄжЁЁ. ‚®в ЇаЁ¬Ґа:
;---ўлў®¤ 1000 Ў ©в®ў ⥪бв
MOV AH,40H ;®¬Ґа дгЄжЁЁ
MOV BX,1 ;¤ҐбЄаЁЇв®а ¤ЁбЇ«Ґп
LEA DX,STRING ;§ Ја¦ Ґ¬ ¤аҐб бва®ЄЁ
MOV CX,1000 ;зЁб«® ўлў®¤Ё¬ле Ў ©в®ў
INT 21H
DOS ЇаҐ¤®бв ў«пҐв Ў®а Esc-Ї®б«Ґ¤®ў ⥫м®б⥩, Є®в®алҐ бгвм бЇҐжЁ «млҐ
гЇа ў«пойЁҐ бва®ЄЁ ¤«п ЇЇ а вгал. K®Ј¤ ®Ё ўлў®¤пвбп б Ї®¬®ймо дгЄжЁЁ 9
ЇаҐалў Ёп 21H, ®Ё ¬®Јгв гЇа ў«пвм Єгаб®а®¬, ०Ё¬®¬ ¤ЁбЇ«Ґп, 梥⮬ бЁ¬ў®«®ў
Ё ҐЄ®в®ал¬Ё ў®§¬®¦®бвп¬Ё Є« ўЁ вгал. K®Ј¤ Їа®Ја ¬¬ ўлў®¤Ёв нЄа ¬®Ј®
бва®Є, Esc-Ї®б«Ґ¤®ў ⥫м®бвЁ з бв® ¤ ов б ¬л© г¤®Ўл© бЇ®б®Ў Ї®§ЁжЁ®Ёа®ў Ёп
Єгаб®а Ё гбв ®ўЄЁ 梥в бва®ЄЁ - Ї®в®¬г зв® б ¬Ё а бб¬ ваЁў овбп Їа®бв® Є Є
®зҐаҐ¤лҐ бва®ЄЁ ў бҐаЁЁ ўлў®¤Ё¬ле бва®Є.
”гЄжЁп 13H ЇаҐалў Ёп 10H ўлў®¤Ёв бва®Єг. ES:BP ¤®«¦л гЄ §лў вм бва®Єг,
¤«Ё бва®ЄЁ ¤®«¦ Ўлвм ў CX. DX гЄ §лў Ґв Ї®§ЁжЁо Єгаб®а , б Є®в®а®© ¤®«¦
зЁ вмбп бва®Є (ўлзЁб«пҐ¬го Є Є ᬥ饨Ґ ®в з « бва Ёжл, Є®в®аго Ё¤Ґв
ўлў®¤, ЎҐ§ гзҐв Ў ©в®ў ваЁЎгв®ў). ‚ BX ¤®«¦Ґ гЄ §лў вмбп ®¬Ґа бва Ёжл.
H Є®Ґж, ®¬Ґа Є®¤ ®в 0 ¤® 3, ᮤҐа¦Ё¬л© ў AL, гЄ §лў Ґв, Є Є ¤®«¦
ўлў®¤Ёвмбп бва®Є :
AL = 0 - бва®Є б®бв®Ёв в®«мЄ® Ё§ бЁ¬ў®«®ў, Єгаб®а ҐЇ®¤ўЁ¦Ґ
AL = 1 - бва®Є б®бв®Ёв в®«мЄ® Ё§ бЁ¬ў®«®ў, Єгаб®а ¤ўЁ¦Ґвбп
AL = 2 - ў бва®ЄҐ зҐаҐ¤говбп бЁ¬ў®«л Ё ваЁЎгвл, Єгаб®а ҐЇ®¤ўЁ¦Ґ
AL = 3 - ў бва®ЄҐ зҐаҐ¤говбп бЁ¬ў®«л Ё ваЁЎгвл, Єгаб®а ¤ўЁ¦Ґвбп
K®Ј¤ AL а ў® 0 Ё«Ё 1, ваЁЎгвл ¤®«¦л 室Ёвмбп ў BL. ‚ᥠᨬў®«л Ўг¤гв
ўлў®¤Ёвмбп б нвЁ¬Ё ваЁЎгв ¬Ё. ќв дгЄжЁп ЁвҐаЇаҐвЁагҐв ў®§ўа в и Ј,
ЇҐаҐў®¤ бва®ЄЁ, ў®§ўа в Є аҐвЄЁ Ё §ў®®Є Є Є гЇа ў«пойЁҐ Є®¬ ¤л, Ґ Є Є
ЇҐз в Ґ¬лҐ бЁ¬ў®«л.
3. ‘®¤Ґа¦ ЁҐ ®взҐв
1) ®¬Ґа Ё §ў ЁҐ а Ў®вл
2) 楫м а Ў®вл
3) Ё¤ЁўЁ¤г «м®Ґ § ¤ ЁҐ а Ў®вг
4) гЄ § ЁҐ Ё¬Ґ Ёб室®Ј® Ё ЁбЇ®«пҐ¬®Ј® д ©«®ў
5) ўлў®¤л
ЋвзҐв ЇаҐ¤бв ў«пҐвбп ў ўЁ¤Ґ ⥪бв®ў®Ј® д ©« , ўлЇ®«Ґ®Ј® ў д®а¬ ⥠DOS
(Є®¤®ў п бва Ёж 866). Љ ®взҐвг ¤®«¦л ЇаЁ« Ј вмбп д ©« Ёб室®Ј® Є®¤
Їа®Ја ¬¬л, а Ў®зЁ© ЁбЇ®«пҐ¬л© д ©« Ё д ©« ўлў®¤ Їа®Ја ¬¬л.
4. ‡ ¤ ЁҐ а Ў®вг
ЏаЁ ўлЇ®«ҐЁЁ нв®© а Ў®вл ¬®¦Ґв Ўлвм Ї®«Ґ§® ЇаЁ«®¦ҐЁҐ "ASCII.docx".
1. ђ §®Ўа вмбп ў ЇаЁўҐ¤Ґле ¬ вҐаЁ « е.
2. ‘Є®ЇЁа®ў вм ў бў®© а Ў®зЁ© Є в «®Ј ⥪бв бў®Ґ© Їа®Ја ¬¬л Ї® ЇаҐ¦Ґ¬г § ¤ Ёо
⥬л "11 €бЇ®«м§®ў ЁҐ ўҐиЁе Їа®жҐ¤га" Ё«Ё "12 €бЇ®«м§®ў ЁҐ ¬ Єа®б।бвў"
(Ї® ўлЎ®аг).
3. „®Ї®«Ёвм нв®в ⥪бв ᮮ⢥вб⢥® § ¤ Ёо. Џа®Ја ¬¬ ¤®«¦ ®ЎҐбЇҐзЁў вм:
1) § Їа®б Ё¬ҐЁ Ї®«м§®ў вҐ«п Ё ўў®¤ Ё¬ҐЁ б Є« ўЁ вгал;
2) ЁбЇ®«м§®ў ЁҐ нв®Ј® Ё¬ҐЁ ЇаЁ ўлў®¤Ґ १г«мв в®ў ўлзЁб«ҐЁ©;
3) § Їа®б § 票© ЇҐаҐ¬Ґле Ё ўў®¤ Ёе б Є« ўЁ вгал;
4) ўлў®¤ Ё¬ҐЁ Ї®«м§®ў ⥫п, Ё¬ҐЁ Їа®Ја ¬¬л, Ё¬Ґ ЇҐаҐ¬Ґле б ўўҐ¤Ґл¬Ё
§ 票ﬨ, ўлў®¤ १г«мв в ўлзЁб«ҐЁ©.
ЏаЁ н⮬ б«Ґ¤гҐв ¤Ґ©бвў®ў вм Ї® нв Ї ¬, ¤®Ї®«пп ⥪бв г¦л¬Ё да Ј¬Ґв ¬Ё,
бᥬЎ«Ёагп Ё ®в« ¦Ёў п Ї®«гзҐго ўҐабЁо Їа®Ја ¬¬л. Љ ¦¤л© а § б«Ґ¤гҐв
§ ЇЁб вм ў ®взҐв Єа вЄ®Ґ ®ЇЁб ЁҐ бў®Ёе ¤Ґ©бвўЁ© Ё Ёе १г«мв в.
4. ЂбᥬЎ«Ёа®ў вм Їа®Ја ¬¬г Ё гЎҐ¤Ёвмбп ў ®вбгвбвўЁЁ ®иЁЎ®Є.
5. ‘Є®¬Ї®®ў вм Їа®Ја ¬¬г.
6. ‚лЇ®«Ёвм Ї®«гзҐл© EXE-¬®¤г«м Ё Їа®ўҐаЁвм १г«мв в ўлзЁб«ҐЁ©.
‡ ЇЁб вм १г«мв в ўлзЁб«ҐЁ© ў ®взҐв.
7. ЏаҐ¤бв ўЁвм а Ў®вг Їа®Ја ¬¬л ЇаҐЇ®¤ ў ⥫о.
**********************************************************************
**********************************************************************
Соседние файлы в папке 13