psan Posted July 27, 2004 Share Posted July 27, 2004 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 More sharing options...
0x2A Posted July 27, 2004 Share Posted July 27, 2004 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 More sharing options...
psan Posted July 27, 2004 Author Share Posted July 27, 2004 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 More sharing options...
0x2A Posted July 27, 2004 Share Posted July 27, 2004 det med push å pop kan du skita i Du har rätt, det skiter jag i! Prova med Dev-C++ då http://www.bloodshed.net/devcpp.html °±° Link to comment Share on other sites More sharing options...
psan Posted July 27, 2004 Author Share Posted July 27, 2004 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 More sharing options...
Anders N Posted July 27, 2004 Share Posted July 27, 2004 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 More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.