![]() |
MAL bzw. Mic1
Hallo.
Ich hätte eine Frage zu einem Code-Problem. es geht um integer Division mit Rest. Wie könnte ich diesen Algorithmus in Assembler umwandeln? (Mic1) Q := 0; R := N while R ≥ D do Q := Q + 1 R := R − D end return (Q, R) Speziell dieses While übersteigt meine Fähigkeiten... |
Wenn du etwas C kannst, dann nimm doch einfach diese Seite hier.
C wird ja immer in Assembler kompiliert, daher einfach eine "Abstraktionsschicht" drueber nutzen: [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...] Wuerde dann so aussehen: C Code: int main() { int n = 0; int d = 0; int q = 0; int r = n; while(r >= d) { q = q + 1; r = r - d; } } Assembler Code: main: PUSH %BP MOV %SP, %BP @main_body: SUB %SP, $4, %SP MOV $0, -4(%BP) SUB %SP, $4, %SP MOV $0, -8(%BP) SUB %SP, $4, %SP MOV $0, -12(%BP) SUB %SP, $4, %SP MOV -4(%BP), -16(%BP) @while0: CMP -16(%BP), -8(%BP) JLT @false0 @true0: ADD -12(%BP), $1, %0 MOV %0, -12(%BP) SUB -16(%BP), -8(%BP), %0 MOV %0, -16(%BP) JMP @while0 @false0: @exit0: @main_exit: MOV %BP, %SP POP %BP RET |
Vielen Dank
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:30 Uhr. |
Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.