[asm]przerwania nie działają jak mają ;(

0

pięć razy sprawdzałem w przerwaniach, czy dobre rejestry daję, ale żadnego błędu nie znalazłem... czemu zawsze program się włącza i Od razu wyłącza? oto kod:

.model tiny
.code
org 100
start:
xor ah,ah
int 16
mov ah, 02h
int 21
xor ah,ah
int 16
mov ah,4ch
int 21
end start

0

Z zapisu wynika że zjadłeś H ! tzn. nie piszesz ORG 100 tylko ORG 100h tak samo z int 16 i int 21 -> powinno być int 16h i int 21h :)

0

o qrde, ale gafa ^^ dzienx [cya]

Po sprawdzeniu****
[hurra] [hurra] Wreszcie podziałało, ale mały problem ciągle jest... wpisuje się kropka, niezalerznie co wcisne ;-|

0

.model tiny
.code
org 256
start:
xor ah,ah
int 22
mov dl,al
mov ah,2
int 33
xor ah,ah
int 22
mov ah,72 ; powinno byc 76
int 33
end start

Nic tak na prawde nie narzuca zapisu heksadecymalnego, rownie dobrze można użyc binarnego, lub decymalnego. Ogólnie przyjęta maniera zapisywania wszystkiego w postaci szesnastkowej jedynie upraszcza zapamiętywanie przerwań i ich funkcji. Poza tym brakowalo ci jednej linijki... Zaladowania znaku do dl.

// do postu poniżej: sorka, szewski bład, literówka. ;] Ale mimo wszystko ten błąd powinieneś sam wychwycić, bo nie trudno samemu dodać 12 (0ch) do 64 (40h).

0

Super:) teraz działa QL, ale mi narobiłeś kłopotu tymi decymalami^^ ale gafy strzelam, kjak mogłem nie zauważyć [glowa]

PS. Nie wiem dlaczego, ale jak skopiowałem twój kod, to wywalał błąd, przy wychodzeniu( niedozwolona operacja), a przy moim było wszystko GIT ^^

0

W ostatnim przerwaniu do ah miało wejść 4ch czyli dziesiętnie 76. Podczas gdy w tym kodzie jest wpisane 72 :-)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.