2013-02-27 119 views
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 

这是我的我的代码部分的调试运行。没有任何内容正在打印,我通过gdb向您展示了$ecx的内容。

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 

不知道我在做什么错。从以前的帖子和其他网站上,我看不出接受的方法存在差异。

回答

3

para的正常值是多少?

我有一个旧的代码,我不使用DWORD 只是

mov  ecx, [para] 
+0

谢谢,这样做 – rcj 2013-02-27 21:33:29

+0

'para'是如何定义的?我认为你只需要传递一个指针:'mov ecx,foo'和'foo'的定义如下,例如'foo db“etc”'对我来说工作正常。 – 2013-02-28 03:11:47

0

ecx希望文本的地址进行打印。除非para是一个“指针”(包含文本的地址),只是mov ecx, para可能是正确的。严格地说,ebx可能想成为2(stderr),但我怀疑这是否是你的问题。告诉我们para