10-маъруза: Ассемблер дастурий таъминотида ишлаш



Yüklə 77,5 Kb.
səhifə5/7
tarix29.11.2023
ölçüsü77,5 Kb.
#140587
1   2   3   4   5   6   7
13 маъруза

  ....
.DATA
msg DB 'Hammasi O.K.'
LEN = $ - msg;LEN 8 ga teng
.CODE
....
cld
lea si,msg;v SI manba adresi
mov ax,0b800h; Видeo хotira segment hajmi
mov es,ax;qo’shimcha segmentga o’tkazish
lea di,es:(0a0h * 3); yuqoridan 4-satr
mov cx,LEN;LEN – chiqish simvollar soni
rp: movsb; ekranning joriy pozitsiyasiga simvolni yuborish
inc di;atribut pozitsiyasidan sakrab o’tish
loop rp; tugaguncha davom ettirish (CX)
....;stroka 'Vsyo O.K.' displey yuqorisidan
;4- satrga chiqariladi.
3. REP: buyruqni qaytarish prefiksi. Masalan, oldingi dasturning tugashi quyidagicha yozilishi mumkin:
mov cx,LEN;qaramasdan, massivi 'Hammasi O.K.' bo’ladi.
rep movsb; B800 ni хotira maydoniga ko’chiriladi:(A0 * 3), ga
;display ekraniga quyidagi yozuv chiqadi:Hammasi OK. Nimaga?
4. CMPSB; (ST) adresni beruvchining qator baytini, (DT) adresli qabul qiluvchining qator baytini solishtirishni bajaradi: ya’ni ((ST))-((DI)) ayirishni bajaradi. CMP DST, SRC buyrug’i bilan yangilishmaslik kerak, qaysiki qabul qiluvchidan beruvchini ayrish bajariladi. CMPSB buyrug’i (CX)ni 1 ga noaniq kamaytiradi va (SI) va (DI) ni 1 ga ko’paytiradi, agar (DF)=0 bo’lsa.
5. REPZ yoki REPE: qaytarish prefiksi. Agar (CX)=0 yoki (ZF)=0 bo’lsa, buyruqni bajarish tamomlanadi.
DATA
src DB 'To be, or not to be'
dst DB 'To be ,or not to be'
len = $ - dst;len 19 ga teng
.CODE
....
cld; (DF) = 0
push ds;manzillarni joylashtirish
pop es; ds va es segmentlari
mov cx,len; dst qator uzunligini cx ga yuborish
lea di,dst;manzilini yuklash (tprkibtga joylashish) qatorlarni dst dan DI ga
lea si,src
repe cmpsb; baytlab solishtirish

Yüklə 77,5 Kb.

Dostları ilə paylaş:
1   2   3   4   5   6   7




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə