2013-10-29 58 views
-1
.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,16mov eax,textcolor +(background)之前是強制的,因爲當我沒有這個運行時,我的程序顯示一個錯誤。另外,我想了解更多關於masm計數器和着色的程序。任何人都可以建議我的網站,我可以練習和解決編程練習。設置文本顏色和背景顏色彙編語言的x86(MASM)

+0

任何解釋將不勝感激。 – ngoche

回答

1

我看不到mov eax, 0的任何原因,因爲該值將被以下movzx指令覆蓋。 mov esi, 0是必需的,因爲esi寄存器用於索引myname數組。

不需要mov eax,16,因爲該值被下一條指令覆蓋。你確定刪除該行會導致錯誤嗎?它確實看起來不應該。

+0

如果我寫的像mov al,myname [esi]那只是我寫mov eax,0的時候? mov eax,16不需要你是對的。另一個問題請。推動和流行的意義是什麼?推EAX \t \t MOV EAX,300 \t \t呼叫延遲 \t \t \t \t MOV EAX,16 \t \t呼叫randomrange \t \t INC EAX \t \t MOV文本顏色,EAX \t \t MOV EAX,(文本顏色+(藍色* 15)) \t \t call settextcolor \t pop eax \t inc esi \t inc dh – ngoche

+0

@PenpaGyaltsen:你需要一個x86彙編程序教程。查看http://cs.smith.edu/~thiebaut/ArtOfAssembly/artofasm.html –