Commit ad921871 authored by Martin Kröning's avatar Martin Kröning

Adjust assembly spacing

parent 51dd40dd
......@@ -29,50 +29,50 @@ Somit ergibt sich für die exemplarische Anweisung der Maschinencode `0x0C30148
3. Vollziehen Sie nun die Phase 2 des Assemblers nach, indem Sie eine Objektdatei im in der Vorlesung vorgestellten Objektformat erzeugen. Zur Vereinfachung können alle Zahlen im *Big Endian*-Format dargestellt werden, außerdem seien alle Sprünge relativ und alle Funktionsaufrufe absolut. Kodieren Sie, soweit möglich, genau drei Befehle in einem T-Datensatz. Nutzen Sie auch den den S-Datensatz. Gehen Sie davon aus, dass der Dateiname und damit auch der Modulname *cntdwn* lautet.
```assembler
SECTION .text
extern printf
extern exit
global main
global msg
main:
push ebp
mov ebp , esp
sub esp, 4
mov ebx, 0x39
mov dword [ebp-4], 0x30
schleife:
cmp ebx , dword [ebp-4]
je ende
mov byte [msg+msg_len -4], bl
push dword msg
call printf
add esp, 4
dec ebx
jmp schleife
ende:
add esp, 4
pop ebp
push dword 0
call exit
add esp, 4
mov eax, 1
mov ebx, 0
int 0x80
SECTION .data
CR equ 13
LF equ 10
msg db "Hello World! ebx = ?", CR, LF, 0
msg_len equ $ - msg
SECTION .text
extern printf
extern exit
global main
global msg
main:
push ebp
mov ebp,esp
sub esp,4
mov ebx,0x39
mov dword [ebp-4],0x30
schleife:
cmp ebx,dword [ebp-4]
je ende
mov byte [msg+msg_len-4],bl
push dword msg
call printf
add esp,4
dec ebx
jmp schleife
ende:
add esp,4
pop ebp
push dword 0
call exit
add esp,4
mov eax,1
mov ebx,0
int 0x80
SECTION .data
CR equ 13
LF equ 10
msg db "Hello World! ebx = ?",CR,LF,0
msg_len equ $-msg
```
* Symboltabele
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment