stdinから整数を読み込み、stdoutに書き込んだりしようとしていますが、私が達成する唯一のことは単純にこんにちはの世界を書くことです。これは私が持っているコードです:アセンブリ内の読み込みと書き込みと整数ATT
.global _start
_start:
push %ebp
movl %esp,%ebp
subl $4,%esp
#Read
mov $3,%eax #READ
mov $0,%ebx #STDIN
mov -4(%ebp),%ecx
mov $1,%edx
int $0x80
#Write call
mov $4,%eax #WRITE
mov $1,%ebx #STDOUT
mov -4(%ebp),%ecx
mov $1,%edx
int $0x80
mov $1,%eax #exit
mov $0,%ebx # exit code
int $0x80
事前に感謝し、これらはアセンブリ内の私の最初のステップであるため、私にはあまりにも難しいことはありません:)
'int 0x80'経由で**は数値を表す** ASCII文字を変換せず、その整数を宛先に格納します。文字通り-4(%ebp)に格納されているものは、整数値ではなく数値を構成するASCII文字になります。整数に変換する必要がある場合は、演算と計算を行い、それを書くことができます読み込み時にASCIIから整数にASCIIを変換するコードが必要です –
効果的に 'sys_read'はASCII文字だけをバッファに読み込みます。 'sys_write'はASCII文字を含むバッファのみを書き込みます。 –
追加情報をありがとう。 – Miguel