Как правило, строка заканчивается нулем (0x00 в шестнадцатеричном формате). Предполагая, что это то, что вы решили сделать, вот пример кода. Я не уверен, какой ассемблер вы используете, или даже какой синтаксис, но этот код x86, который должен работать в MASM:
mov cl, 0 ; cl is the counter register, set it to
; zero (the first character in the string)
start: ; Beginning of loop
mov al, bytes[cl] ; Read the next byte from memory
cmp al, 0 ; Compare the byte to null (the terminator)
je end ; If the byte is null, jump out of the loop
sub al, 20h ; Convert to upper case
; A better solution would be: and al, 0DFh
; Output the character in al
add cl, 1 ; Move to the next byte in the string
jmp start ; Loop
end: