以下代码打印的字符多于字符串中指示的字符。我正在使用 NASM
section .text
global main
main:
mov ah,0x09
mov dx, varr
int 0x21 ; print string in dx
mov ah, 0x4c
mov al, 0x00
int 0x21 ; exit program code 0
section .data
varr db "asd",'$'
并将asd字符串后面的随机字符打印为
'♦V☺'♦'♦☺☺☺ ☻ 8♣µ Æ♣¶ ↑ Æ♣ ♣ ═! asd
为什么是这样?我失败了。我用 X 射线对其进行了反汇编,看起来是正确的,varr (0x10) 的地址对应于字符串的开头。