GDB只读取STDIN中的1个字符

时间:2014-12-07 16:21:55

标签: debugging unix assembly gdb nasm

目前我正在学习汇编语言,出于好奇,我想知道我的程序是如何使用程序集编写的,所以我加载GDB-tuilayout asm GDB)并开始调试。

STDIN要求enter输入时,我感到很惊讶,它只占用1个字符,然后即使我没有按STDIN也停止接受其他字符。

我在终端再次尝试,它工作正常,我的程序可以毫无问题地进行多次global main segment .bss ; hold uninitialize buffer szinput resb 10 ; declare 10 bytes uninitialize buffer nszinput equ $ - szinput ; equ is meaning constant segment .text main: pusha mov eax, DWORD 3 ; read syscall mov ebx, DWORD 0 ; 0 is stdin file descriptor mov ecx, szinput ; void *buf mov edx, nszinput ; size_t count int 80h ; invoke syscall popa ret 输入。

在这里,我从我的测试装配中提供了部分,这个问题可以通过以下装配重现:

gdb --version

请注意,此程序集适用于NASM汇编程序。

运行GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1,结果如下:{{1}}

0 个答案:

没有答案