printf 不打印负数。参见示例:
.model flat
includelib msvcrt.lib
printf proto c, :vararg
.data
resp db 'k = %d',10,13,0
k db ?
.code
public main
main proc
mov k, -1
invoke printf, addr resp, k
xor eax, eax
ret
main endp
end
结果是k = 255,不是k = -1 如何打印一个负数?
到目前为止,我已经这样做了:
movsx ebx, k
invoke printf, addr resp, ebx
如果要打印一个字节,用
"%hd"
,h
表示参数的大小是一个字节。