设置文本颜色和背景颜色汇编语言x86(masm)

时间:2013-10-29 19:44:35

标签: assembly x86 masm32

    .data
myname byte "Ngoche Penpa Gyaltsen",0
space byte ' ',0

.code

main PROC
    mov esi,0
    mov eax,0
    mov ecx,lengthof myname
    mov edx,offset space

L1:
movzx eax,myname[esi]
call writechar

mov eax,16
mov eax,yellow +(blue*16)
call settextcolor
call writestring
inc esi
loop L1;

exit

我的问题是为什么我们需要设置mov eax,0mov esi,0。另外,mov eax,16之前必须mov eax,textcolor +(background),因为当我没有这个时,我的程序显示错误。另外,我想了解更多关于masm计数器和程序中的着色。任何人都可以建议我在哪里练习并解决编程练习。

1 个答案:

答案 0 :(得分:1)

我没有看到mov eax, 0的任何原因,因为该值将被以下movzx指令覆盖。 mov esi, 0是必需的,因为esi寄存器用于索引myname数组。

不需要mov eax,16,因为该值会被下一条指令覆盖。你确定删除该行会导致错误吗?肯定看起来不应该。