Package: binutils Version: 2.19.1-1 Severity: minor I recently discovered that the GNU Assembler interpreted the constant '\0' as the ascii value for the digit, 0x30 and not, as in C, 0x0. Maybe this isn't a bug at all, but rather some language feature. The following code will output "30: 0", where the wanted output would be "0: ". This is true both for the lenny version (2.18.1~cvs20080103-7) and the one in sid (2.19.1-1).
#include <stdio.h> .data F1: .string "%x: %c\n" .text .globl main /* why is '\0' interpreted as '0' (ascii: 0x30)? */ main: pushl $'\0' pushl $'\0' pushl $F1 call printf pushl $0 call exit Replacing $'\0' with $0 solved my problems, but I figured it merited some explanation at least. TIA -- Olof Johansson PGP: 0x7FC0FBBA
signature.asc
Description: Digital signature