R
ralli
Guest
Zur Zeit beschäftige ich mich ein wenig mit der Assembler Sprache. Dafür habe ich das Paket nasm installiert. Außerdem bin ich nach unserem FreeBSD Handbuch vorgegangen und habe der Tradition verpflichtet ein erstes Assembler Programm nach Vorlage des Handbuches namens hello.asm codiert:
Bei der Compilierung mit
bricht er mit folgender Fehlermeldung ab:
Es ist natürlich offensichtlich, das die include Datei 'system.inc' nicht gefunden wird. Ich habe lange gesucht, sie aber leider nicht gefunden. Die muß doch das Paket nasm mitinstalliert haben, oder? Wer weiß, wo die steckt, damit ich den Pfad mit angeben kann?
Zum Linken bin ich daher erst garnicht gekommen.
Code:
%include 'system.inc'
section .data
hello db 'Hello, World!', 0Ah
hbytes equ $-hello
section .text
global _start
_start:
push dword hbytes
push dword hello
push dword stdout
sys.write
push dword 0
sys.exit
Bei der Compilierung mit
Code:
nasm -f elf hello.asm
bricht er mit folgender Fehlermeldung ab:
Code:
nasm: fatal: unable to open input file `hello.asm'
Es ist natürlich offensichtlich, das die include Datei 'system.inc' nicht gefunden wird. Ich habe lange gesucht, sie aber leider nicht gefunden. Die muß doch das Paket nasm mitinstalliert haben, oder? Wer weiß, wo die steckt, damit ich den Pfad mit angeben kann?
Zum Linken bin ich daher erst garnicht gekommen.
.
. Davor liegen daten (ich glaube ausschließlich der stack). Wenn du dem rat folgen möchtest, kann ich tasm empfehlen, wenn du das im netzt nicht mehr findest könnte ich es evtl. Noch in meinen alten daten finden. Der vorteil bei diesem assembler ist der debuger, der zeigt dir alle x86 16 bit register und deinen ram schön graphisch an, das hilft am anfang ungemein. Wenn du da deine ersten gehversuche geschafft hast (ich empfehle mal mein erstes projekt, exonenzieren nur mit addition und dann am besten im 1. Schritt nur einstellig, danach mehrstellig, das ist relativ einfach und man kommt mit den ersten assembler eigenheiten in berührung die auch schon kniffelig sein können, wenn man neu anfängt), kannst du dir x86 32 und amd64 ansehen und mit bsd loslegen, wo dann aber segmentierung pflicht ist. Aber durch den vorherigen exkurs in die einfache welt von 16 bit und nur code segment hast du dann ein besseres verständniss von dem was deine probleme dann sein werden und bist besser vorbereitet sie zu lösen.