Assebler kel egy olyan programot készítenem amivel egy jelet tudok mozgatni a képernyőn, eddig jutottam kitudnátok segíteni hogyan továb?
Jelenleg a x,y kordináta valtozók helyére ertéket raktam mivel nem tudtam rájonni hogyan is tudnám ösze rakni a billentyukel.
Code Segment
assume CS:Code, DS:Data, SS:Stack
Start:
mov ax, Code
mov DS, AX
Rajz:
mov ax, 03h
int 10h
mov dx, di ;(16 bites regisztert használunk)
mov dh, 2 ;Y koordináta
mov dl, 40 ;X koordináta
xor bh, bh
mov ah, 02h
int 10h
;kiiratás
mov dx, offset Labda
mov ah, 09h
int 21h
Var:
;Bevitel
xor ah, ah
int 16h
;ESC?
cmp al, 27
jz Program_Vege
cmp ah, 75
;Balra?
jz Balra
cmp ah, 77
;Jobbra?
jz Jobbra
;Felfele?
cmp ah, 72
jz Felfele
;Lefele?
cmp ah, 80
jz Lefele
jmp Var
Balra:
pop dx
dec dl
cmp dl, 1
jnc Rajz
inc dl
Jobbra:
pop dx
inc dl
cmp dl, 250
jc Rajz
dec dl
Felfele:
pop dx
dec dh
cmp dh, 1
jnc Rajz
inc dh
Lefele:
pop dx
inc dh
cmp dh, 200
jc Rajz
dec dh
Program_Vege:
mov ax, 4c00h
int 21h
Labda:db "O$"
Code Ends
Data Segment
Data Ends
Stack Segment
Stack Ends
End Start
A kompilert a kérdésben kellett volna említened.
Ez a kód már arra a kompilerre van átalakítva:
Meg csak nemrég kezdtem el tanulni így nem igazán tudtam hogy mit fontos megemlíteni.
Mindenesetre köszönöm, főleg azt hogy ennyire részletesen leírtad minden lépes mit csinál így nagyon könnyen megérthetővé vált ráadásul ezzel egybe megtudtam hogyan lehet assemblyn belül is változókat használni.
Köszönöm.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!