Just nu i M3-nätverket
Gå till innehåll

asm i c


psan

Rekommendera Poster

varför vägrar vilken c-kompilator jag än tar gå bortom int 10h i följande kodsnutt:

 

<code>

 

int main(void)

{

__asm

{

push es;

push di;

mov ax, 0x13

int 10h

mov ax, 0a000h

mov es, ax

mov di, 600

mov al, 100

stosb

mov ah, 1

INT 21h

mov ax, 03h

INT 10h

pop di

pop es

}

return(0);

}

 

</code>

 

ska tillläggas att a86 kompilerar koden utan problem..

om ni inte orkar lista ut vad koden gör så sätter den ut en pixel å väntar på knapptryckning.. måste bara älska mode 13h ;)

 

//psan

 

Länk till kommentar
Dela på andra webbplatser

Vad får du för felmeddelande vid kompileringen?

Ska det vara ; efter push es och push di ?

(LÄNGE sedan assembler var kul för mig ;)

 

<edit> eller så kanske det skall vara mov ax, 13h

0x-tal är kanske bara jag eller bara i Cxx

<edit2>Näe, 0x13 och 13h är ekvivalent acceptabelt.

och ; är typ kommentar...

Felmeddelande ?

 

 

°±°

 

[inlägget ändrat 2004-07-27 17:49:38 av 0x2A]

[inlägget ändrat 2004-07-27 17:58:51 av 0x2A]

Länk till kommentar
Dela på andra webbplatser

får "access violation" på första raden där det står int 10h.

 

det med push å pop kan du skita i, la bara till det för att kolla så att det inte blev nått fel på det, var samma problem innan..

 

men fungerar som sagt i a86 och troligtvis i tasm, men det är visual c++ som strular till det..

 

tack för ditt svar :)

 

//psan

 

Länk till kommentar
Dela på andra webbplatser

tyvärr var detta det första programmet jag testade det i, var dock inte riktigt nöjd med hur man skrev asm koden där i vilket fall som helst..

 

Länk till kommentar
Dela på andra webbplatser

Ah. Good old asm. Tänk vad roligt man har haft. Tur att det finns personer som fortfarande uppskattar det och 13h :)

 

Dock så är din kod inte optimerad storleksmässigt... ;) bland annat så kan du ju byta ut "mov al, 100" mot "mov ax, 0164h" och strunta i följande "mov ah, 1", eftersom stosb inte tallar på registret, och 21h/1h inte bryr som om AL vid input. ;D

 

Ciao,

Anders

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...