.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,0
和mov esi,0
。另外,mov eax,16
之前必须mov eax,textcolor +(background)
,因为当我没有这个时,我的程序显示错误。另外,我想了解更多关于masm计数器和程序中的着色。任何人都可以建议我在哪里练习并解决编程练习。
答案 0 :(得分:1)
我没有看到mov eax, 0
的任何原因,因为该值将被以下movzx
指令覆盖。 mov esi, 0
是必需的,因为esi
寄存器用于索引myname
数组。
不需要mov eax,16
,因为该值会被下一条指令覆盖。你确定删除该行会导致错误吗?肯定看起来不应该。