Entwickler-Ecke
Algorithmen, Optimierung und Assembler - [Assembler] Problem beim Teilen
Delete - Do 26.01.06 19:52
Titel: [Assembler] Problem beim Teilen
Hallo!
Hab mal angefangen mir etwas assembler beizubringen und bin nun (nach dem obligatorischen 'Hello World' ;) ) beim Teilen angelangt.
Möchte einfach 42 durch 11 teilen.
(Da kommt bekanntermaßen 3 Rest 9 raus.
der rest kommt ins ah register und das ergebnis ins al)
Hier mein Quelltext:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| org 100h start: mov ax,[divident] div [divisor] mov [ergebnis],al mov [resti],ah mov ah,4Ch int 21h section .date divident dw 2Ah divisor dw 0Bh resti dw 00h ergebnis dw 00h |
Wer sich wundert warum ich 'resti' statt 'rest' schreibe: mit 'rest' kommen zwei compilerfehler (Zeilen 6,12). Mit 'resti' nur einer in Zeile 4. Der macht mir zu schaffen.
Hoffe mir kann jemand helfen!
MMMichael
Moderiert von
Christian S.: Topic aus Off Topic verschoben am Sa 28.01.2006 um 09:51
tommie-lie - Do 26.01.06 21:19
Titel: Re: [Assembler] Problem beim Teilen
mmmichael hat folgendes geschrieben: |
einer in Zeile 4. Der macht mir zu schaffen. |
Du möchtest die Syntax für DIV im
IA Software Developer's Manual [
http://intel.com/design/Pentium4/documentation.htm#manuals] (S. 3-253) nachschauen. ;-)
Da steht eine große Auswahl an Operatorgrößen zur Verfügung. Woher soll der Prozessor nun wissen, wieviele Byte er als Divident annehmen soll? Du musst ihm also mitteilen, was tu tun ist. Im NASM geht das, indem du einfach "word" vor den Ausdruck stellst, da dein Divident in der data-Section nur ein Word groß ist:
.
Assembliert mit NASM 0.98.38 ohne Fehlermeldungen.
Edit: Byte durch Word ersetzt. Du solltest dir angewöhnen, Daten in hexadezimaler Schreibweise immer in Zielgröße anzugeben. Beispielsweise 000Fh für ein Word mit dem Wert 255. Dann muss man nicht auf den Präfix achten, sondern sieht gleich, wie breit die Daten sind, die man haben will.
Delete - Fr 27.01.06 15:11
Okay, Vielen Dank! :think:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!