Assembler - Przykład Loop mov, bx
nbspnbspnbsp, pop, push, int, sie, call, loop, assembler, przykład, mov, , bx
nbspnbspnbsp, na, pop, do, push, int, z, sie, cx, i, call, loop, -, assembler, przykład, add, programu, pznak
nbspnbspnbsp, cx=10, skorzystamy, al0
nbspnbspnbsp, for, 1, ax
nbsp, nie, procedur, przy, ax
nbspnbspnbsp, w, demonstrujacy,
program, loop
linie, zaczynajace, uzyciu, petle, segment
assume, ignorowane, wypisania, sa, kompilacji
cseg, cscseg, dscseg, znakiem, 1310
nbsp, pocz
nbspnbspnbsp, dane, jmp, poprzedniej, wartosci, petli, procedury
crlf, wczesniej
nbsp, 100h
start
nbsp, escseg
org, db, ktore, celu, napisalismy, loop
wprowadza, naszych, ekran
nbsp, jesli, znasz, wczesniejszego, obejrzyj, go, dataczasasm
pznak
nbspnbspnbsp, ah0eh
nbspnbspnbsp, xor, petla, bxbx
nbspnbspnbsp, 10h
nbspnbspnbsp, ret
piszcxnbspnbspnbspnbspnbspnbspnbspnbsp, ok, ptldemoasm
nbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbsp, celow, tak, rejestru, przerobimy, aby
nbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbsp, bajt, wypisywac, cx
nbspnbspnbsp, alah
nbspnbspnbsp, axcx
nbspnbspnbsp, bh10
nbspnbspnbsp, div, bh
nbspnbspnbsp, ret
pocznbspnbspnbspnbspnbspnbspnbspnbspnbspnbsp, ekran, 21h
nbsp, pokaz, aktualna, zastanow, to,
nbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbsp, dlaczego
, piszcxnbspnbsp, 1
nbsp, ax4c00hnbsp, komputer, 0
nbsp, nowej, step, wartosc, downto, 1
nbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbsp, inne, petliquot
nbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbsp, 10, wykonaj,
od, ekranie
nbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbsp, 0, dzialania, lub, basicu
nbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbsp, cx10
ptl
nbsp, quotw, a, osiagnie, gdy, ptlnbspnbspnbspnbspnbsp, porownanie, typu, przejdz, ze, przyklad, zmniejszanie
nbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbsp, cale, cyfry, mlodszy, za, zrobi, nas, linii
nbsp, dxoffsetcrlf
nbsp, tego, zobaczysz, programu
nbsp, koniec, wyswietla, powtarzac, uruchomieniu, start
po, sama, ah09h
nbsp, zakonczy, ends
end, 21h
cseg, zob,
Sobota 26 Kwiecień 2025r.
Godz 00:00:00
Postów: 251
Assembler - Przykład Loop
;Program demonstrujacy petle przy uzyciu loop
;
;Wprowadza: loop
;
;Linie zaczynajace sie znakiem ; sa ignorowane przy kompilacji.
;
cseg segment
assume cs:cseg, ds:cseg, es:cseg
org 100h
start:
jmp pocz
;Skorzystamy z procedur z poprzedniej petli - zob. ptldemo.asm
;Dane i procedury
crlf db 13,10,'$'
;Skorzystamy z procedur, ktore napisalismy wczesniej
;w celu wypisania wartosci CX na ekran
;Jesli nie znasz wczesniejszego programu, obejrzyj go - dataczas.asm
pznak:
push ax
push bx
mov ah,0eh
xor bx,bx
int 10h
pop bx
pop ax
ret
piszCX: ;OK, do naszych celow przerobimy tak, aby
;wypisywac na ekran mlodszy bajt rejestru CX
push ax
push bx
mov ax,cx
mov bh,10
div bh
add al,'0'
call pznak
mov al,ah
add al,'0'
call pznak
pop bx
pop ax
ret
pocz: ;petla typu
;for cx=10 downto 1
;lub w basicu
;for cx=10 to 1 step -1
mov cx,10
ptl:
call piszcx ;pokaz aktualna wartosc cx na ekranie
;wykonaj inne dzialania "w petli"
;na przyklad - przejdz do nowej linii
mov ah,09h
mov dx,offset(crlf)
int 21h
loop ptl ;zrobi za nas cale porownanie i zmniejszanie
;i sama zakonczy sie powtarzac, gdy CX osiagnie 0
mov ax,4c00h ;koniec programu
int 21h
cseg ends
end start
;Po uruchomieniu tego programu zobaczysz, ze komputer wyswietla cyfry -
;od 10 do.... 1 a nie do 0 - zastanow sie, dlaczego?
;
;
;
;
Darmowy hosting zapewnia PRV.PL