2015-10-26 1 views
-1

Dans mon code, j'ai imprimé avec succès le nom sur l'écran mais maintenant je n'ai plus besoin d'imprimer que mon nom de famille. Alors que le nom entier est encore affiché, seul le nom de famille apparaîtra à l'écran. J'ai continué à essayer mais je suis incapable de le comprendre.Les programmes ne fonctionnaient pas comme prévu

Mon code:

include irvine32.inc 

title Read5 

.data 

outmsg DB " Will Smith: ",0 ;promts here will smith but on screen only smith 

len DW 0 

.code 

main proc 

mov ecx, 5 

mov edx, offset outmsg 

call writestring 

call crlf 

sub eax,eax 

ShowChar: 

sub eax,eax 

mov al, [ebx] 

call writechar 

sub ebx, 1 

loop showChar 

Exit 

main endp 

end main 
+0

, veuillez correctement formater votre code. – skypjack

+1

Je ne suis pas familier avec irvine32.inc, mais 1) il semble que vous n'initialisiez pas le pointeur de lecture (ebx), et 2) vous le décrémentez ensuite là où il semble que vous devriez incrémenter. –

Répondre

0

Vous oubliez de configurer le pointeur dans EBX.

mov ebx, offset outmsg + 6 ; +6 to skip " Will " 
mov ecx, 5 
ShowChar: 
sub eax, eax 
mov al, [ebx] 
call writechar 
add ebx, 1     ; don't subtract here 
loop ShowChar 

Bien sûr, vous pouvez également imprimer le nom de famille de la même manière que pour le nom complet.

mov edx, offset outmsg + 6 ; +6 to skip " Will " 
call writestring 
call crlf