Sie sind auf Seite 1von 2

Äàëãàâàð.

je up äàðàãäñàí áîë up ð¿¿


1: ºíãºò òåêñò ãîðèì òîãòîоæ ãàðíààñ 5-10 òýìäýãò àâàõ cmp al , 'l' al ==l-èéí ascii /l/äàðàãäñàí
2: àâñàí òýìäýãòèéã ãàðààñ l,u,d,r òîâчëóóðûã äàаðõаä ýñýõèéã øàëãàõ
õàðãàëçàаã áàðóóн, ç¿¿í, äýýø, äîîø øèëæèõ ïðîãðàì áè÷èõ je left äàðàãäñàí áîë left ð¿¿
.model small cmp al , 'r' al ==r-èéí ascii /r/äàðàãäñàí
.stack 100h ýñýõèéã øàëãàõ
.data je right äàðàãäñàí áîë right ð¿¿
nimm db 13 dup ('$') cmp al , 'd' al ==d-èéí ascii /d/äàðàãäñàí
minn db 10 dup ('%') ýñýõèéã øàëãàõ
row db 05 row íýðòýé 05 ãýñýí je down äàðàãäñàí áîë down ð¿¿
óòãаòàé õóâüñàã÷ çàðëàõ jmp j2 j2 ð¿¿
col db 05 col íýðòýé 05 ãýñýí ex :
óòãаòàé õóâüñàã÷ çàðëàõ call exit ïðîãðàìûã äóñãàõ ïðîöåäóóð
temp db 05 temp íýðòýé 05 up:
ãýñýí óòаãòàé õóâüñàã÷ çàðëàõ cmp dh, 00 dh ==0 ýñýõèéã øàëãàõ
je j2 òýíö¿¿ áîë j2 ð¿¿
.code sub dh , 1 ýñâýë dh èéã íýãýýð --
ehlel: mov row, dh row íü dh èéã îëãîõ
jmp j1 j1 ð¿¿ äàðààãèéí êîìàíä
mov ax, @data left:
mov es, ax cmp dl, 00 dl ==0 ýñýõèéã øàëãàõ
mov ds, ax je j2 òýíö¿¿ áîë j2 ð¿¿
sub dl , 1 ýñâýë dl èéã íýãýýð--
lea si , nimm si-; nmin èéí ýõëýõ õàÿãèéã mov col , dl col íü dl èéã îëãîõ
îëãно jmp j1 j1 ð¿¿ äàðààãèéí êîìàíä
lea di , minn di-; minè èéí ýõëýõ õàÿãèéã right:
îëãно cmp dl, 68 dl ==68 ýñýõèéã øàëãàõ
je j2 òýíö¿¿ áîë j2 ð¿¿
call cursor cursor íýðòýé äýä ïðîöåäóðûã äóóäàõ add dl , 1 ýñâýë dl èéã íýãýýð++
ýíý íü cursor-èéí àíõíû áàéðëëûã òîãòîоõ mov col , dl col íü dl èéã îëãîõ
call scanf scanf íýðòýé äýä ïðîöåäóðûã äóóäàõ jmp j1 j1 ð¿¿ äàðààãèéí êîìàíä
ýíý íü ãàðíààñ óòãà îðóóëàõ down:
call gorim gorim íýðòýé äýä ïðîöåäóðûã äóóäàõ cmp dh, 24 dh ==24 ýñýõèéã øàëãàõ
ýíý íü ºíãºò òåêñò ãîðèì òîãтоно je j2 òýíö¿¿ áîë j2 ð¿¿
add dh , 1 ýñâýë dh èéã íýãýýð++
mov si , dx si –ä dx èéã îëãîõ mov row, dh row íü dh èéã îëãîõ
mov dl , 19 dl ä 19 ãýñýí óòãà îëãîõ jmp j1 j1 ð¿¿ äàðààãèéí êîìàíä
mov bl , 05 bl-ä 05 ãýñýí óòãà îëãîõ ret
init endp
aa:
call cursor cursor íýðòýé äýä ïðîöåäóðûã äóóäàõ gag proc òýìäýãò õýâëýõ ïðîöåäóð
ýíý íü cursor-èéí àíõíû áàéðëëûã òîãòîоõ lea di , minn di-ä õýâëýõ òåêñòèéí ¿¿ðèéí
mov ah , 09 äýëãýöэíä õýâëýõ õ¿ñýëò ýõëýõ õàÿã
mov al , [si] al,si-èéí óòãèéã îëãîõ user1:
cmp al , 0dh al íü 0dh òýíö¿¿ ýñýõèéã øàаëãàõ call cursor12
je ab òýíö¿¿ áîë ab ð¿¿ mov ah , 09 äýëãýöíä õýâýë õ¿ñýëò
mov [di] , al di-èéí óòãанд al èéã îëãîõ mov al , [di] al ä di èéí óòàãèéã îëãîõ
mov bh , 00 0-ð õóóäàñ mov bh , 00 0-ð õóóäàñ
mov cx , 1 cx-ä íýã îëãîõ inc bl ºíãº
int 10h BIOS-èéã äóóäна mov cx , 1 cx íü 1 îëãîõ
inc di di íýãýýð ++ int 10h
inc si si íýãýýð ++ inc di äàðààãèéí òýìäýãò ð¿¿
inc bl bl íýãýýð ++ øèëæèõ
cmp dl , 30 dl ==30 ýñýõèéã øàаëãàõ inc dl êóðñîðûí ìºðèéã áàðóóí òèéø
je ab òýíö¿¿ áîë ab ð¿¿ íýãýýð øèëæ¿¿ëýõ
jmp aa aa ð¿¿ mov al , [di] al ä di èéí óòãèéã îëãîõ
ab: cmp al , 37 al==37 õýñýãèéã øàëãàõ
mov dh , 05 dh=05 óòãа îëãîõ je user2 òýíö¿¿ áîë user 2
mov dl , 05 dl=05 óòãа îëãîõ jmp user1 user 1 ð¿¿
call init init íýðòýé äýä ïðîöåäóðûã äóóäàõ ýíý íü äýëãýö user2:
öэýâýðëýõ áà òýìäýãò õýâëýõ ret
init proc init ïðîöåäóðûí ýõëýë gag endp
j1:
call clrscr äýëãýö öýэâýðëýõ ïðîöåäóð cursor12 proc
mov dh , row êóðñîðûí áàéðëàëèéã dx èéí àõëàõ mov ah , 02
áàãà áàйòíä îëãîõ mov bh , 0
mov dl , col int 10h
push dx êóðñîðûí áàéãàà áàéðëàëûã ñòåêò ret
õàäãàëàõ cursor12 endp
call gag òýìäýãò õýâëýõ äýä ïðîöåäóð clrscr proc
mov ax , 0600h
pop dx ñòåêýýñ dx èéã ãàðãàõ mov bh , 07
j2: mov cx , 0000
mov ah , 00 ãàðíààñ îðîëò õ¿ñíý mov dx , 184fh
int 16h BIOS-èéã äóóäíà int 10h
cmp al, 1bh al ==1bh/ ESC/ äàðàãäñàí ret
ýñýõèéã øàëãàõ clrscr endp
je ex äàðàãäñàí áîë ex ð¿¿ scanf proc
cmp al , 'u' al ==u-èéí ascii /u/äàðàãäñàí mov ah , 3fh
ýñýõèéã øàëãàõ mov bx , 00
mov cx , 10
lea dx , nimm
int 21h
ret
scanf endp
cursor proc
mov ah , 02
mov bh , 0
mov dh , 0
inc dl
int 10h
ret
cursor endp
gorim proc
mov ah , 00
mov al , 03
int 10h
ret
gorim endp
exit:
mov ax , 4c00h
int 21h
ret
end ehleл
áëîê ñõåì: ýõëý
õ
Ãàðíààñ 5-10 òýìäýãò àâàõ
, òåêñòèéí ºíãºò ãîðèì
òîãòîõ

Ãàðíààñ òýìäýãò
äàðàãäñàí ýñýõ

L áîë

Êóðñîðèéí áàéãàà
ãàçàðààñ ç¿¿í òèéø íýãýýð
- ñòåêò õàäãëàæ
Òýìäýãòèéã ýõíýýñ äóñòàë
õýâëýæ ñòåêýýñ dx èéã

esc áîë
U áîë
Ïðîãðàì äóñãàõ

Êóðñîðèéí áàéãàà
ãàçàðààñ äýýø òèéø
íýãýýð -- ñòåêò õàäãëàæ
Òýìäýãòèéã ýõíýýñ äóñòàë
õýâëýæ ñòåêýýñ dx èéã

Дүгнэлт
R áîë
Би энэхүү лабороторийн ажлаар дэлгэцийн
өнгөт горим тогтоож түүн дээр өнгөтөөр текст
Êóðñîðèéí áàéãàà
хэвлэх мөн гарнаас дарагдсан товчийн скан ãàçàðààñ ç¿¿í òèéø íýãýýð
кодыг унших аргыг хийж сурлаа. ++ ñòåêò õàäãëàæ
U Òýìäýãòèéã ýõíýýñ äóñòàë
õýâëýæ ñòåêýýñ dx èéã

L
R Êóðñîðèéí áàéãàà Dáîë
ãàçàðààñ äîîø òèéø íýãýýð
++ ñòåêò õàäãëàæ
Òýìäýãòèéã ýõíýýñ äóñòàë
D õýâëýæ ñòåêýýñ dx èéã

Das könnte Ihnen auch gefallen