1

次を使用して画面に4バイトを書き込もうとしています:

nasm -f elf -g ****.asm

何も起こっていません。

関連するコード セグメントは次のとおりです。

mov     eax, 4             ; ow print error mesg
mov     ebx, 1
mov     ecx, DWORD [para]
mov     edx, 4
int     080h

これは、コードのその部分のデバッグ実行です。何も印刷されていません$ecx。gdb の内容を表示しています。

253             mov     eax, 4             ; ow print error mesg
(gdb)
254             mov     ebx, 1
(gdb)
255             mov     ecx, DWORD [para]
(gdb)
256             mov     edx, 4
(gdb)
257             int     080h
(gdb) p /t $ecx
$1 = 1100001010101001000010110000010
(gdb) step

私が間違っていることはわかりません。ここや他のウェブサイトの以前の投稿から、受け入れられた方法との矛盾は見られません。

4

2 に答える 2

3

para の正常値は?

私は古いコードを持っていて、DWORD だけを使用していません。

mov     ecx, [para]
于 2013-02-27T21:22:41.137 に答える
0

ecx印刷するテキストのアドレスが必要です。para「ポインター」(テキストのアドレスを保持する)でない限り、mov ecx, paraおそらく正しいでしょう。厳密に言えば、ebx2 (stderr) にしたいかもしれませんが、それが問題なのかどうかは疑問です。見せてpara

于 2013-02-27T21:26:37.780 に答える