Just nu i M3-nätverket
Jump to content

asm i c


psan

Recommended Posts

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

 

Link to comment
Share on other sites

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]

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

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..

 

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...