• Apgrejdovali smo forum na XenForo 2.1.1, ukoliko imate predloga vezanih za izgled ili funkcionalnost foruma, ili ukoliko naletite na neki problem, javite nam OVDE

    DEFINISALI SMO PRAVILA FORUMA. Pročitajte ih, pojaviće se automatski kada krenete da čitate nešto!

Assembler za i8086 greska

EmeraldCube

PCAXE Member
Učlanjen(a)
25.06.2016.
Poruka
168
Rezultat reagovanja
14
Moja konfiguracija
PC / Laptop Name:
Magični Majk
CPU & cooler:
i5 11400 + Noctua NH-D14
Motherboard:
AsRock H470 Steel Legend
RAM:
16 GB DDR4 3000Mhz(zaboravih koje)
VGA & cooler:
Rx 570 4GB Asus
Display:
Msi Optix G241 144hz & Dell SE2219HR 75Hz
HDD:
1TB Samsung SSD + 240GB SP SSD
Sound:
HyperX Cloud I
Case:
BeQuiet Silent base 800
PSU:
Cooler Master 750W 80+ Gold neko
Internet:
ADSL 2MB down/0.2MB up
OS & Browser:
Windows 10 pro
unknown opcode skipped: 65
not 8086 instruction - not supported yet.

Uglavnom pokusavam da naucim assembler jer mi je zanimljiv i ispisuje mi ovu gresku kad pokusam da ispisem niz karaktera na ekranu. Jasno mi je da je u pitanju neka instrukcija koja nije podrzana, ali zanima me kako da je resim.

a db 'Hello'
mov ah,0eh

mov al,a
int 10h

mov al,a[1]
int 10h

mov al,a[2]
int 10h

mov al,a[3]
int 10h

mov al,a[4]
int 10h

ret

Ovo je kod, nista posebno i nista over-engineerovano.
Uglavnom kod se izvrsi i ispise se na ekranu "Hello", ali samo ako pokrenem program preko single step.
Takodje znam da je problem nastao negde zbog niza stringova tj zbog promenljive "a".

Hvala unapred!
 

EmeraldCube

PCAXE Member
Učlanjen(a)
25.06.2016.
Poruka
168
Rezultat reagovanja
14
Moja konfiguracija
PC / Laptop Name:
Magični Majk
CPU & cooler:
i5 11400 + Noctua NH-D14
Motherboard:
AsRock H470 Steel Legend
RAM:
16 GB DDR4 3000Mhz(zaboravih koje)
VGA & cooler:
Rx 570 4GB Asus
Display:
Msi Optix G241 144hz & Dell SE2219HR 75Hz
HDD:
1TB Samsung SSD + 240GB SP SSD
Sound:
HyperX Cloud I
Case:
BeQuiet Silent base 800
PSU:
Cooler Master 750W 80+ Gold neko
Internet:
ADSL 2MB down/0.2MB up
OS & Browser:
Windows 10 pro
Okej, prvo sto sam naucio jeste da umesto "ret" stavim "endp"...ne znam ni otkud mi ret i zasto ga koristim kad mi ne treba da se vraca nazad.

Drugo je sledece:

mov ah,4ch
mov al,00
int 21h

Dodavanjem tog koda i ispisivanjem promenljive "a" na dnu ekrana tj ispod koda je resilo sve moje probleme...sta se desilo, nemam pojma tako da idako je problem resen, da li neko moze da mi objasni sta se upravo dogodilo i zasto funkcionise samo ako se napise promenljiva na dnu ekrana, a ne recimo na pocetku.

Hvala :)
 
Vrh