String 如何按相反的顺序打印字母表的一部分?
我有这个功能,可以打印字母表的前N个字符:String 如何按相反的顺序打印字母表的一部分?,string,assembly,x86,irvine32,String,Assembly,X86,Irvine32,我有这个功能,可以打印字母表的前N个字符: proc1 PROC USES ecx mov al, 'A' ;Stores characther L1: call WriteChar ;Writes character inc al ;Increment al loop L4 ret proc1 ENDP 我正在尝试反转字符串,但我不确定如何
proc1 PROC USES ecx
mov al, 'A' ;Stores characther
L1: call WriteChar ;Writes character
inc al ;Increment al
loop L4
ret
proc1 ENDP
我正在尝试反转字符串,但我不确定如何操作。它应该是这样的:
proc inversestring
; edx - string to inverse
; ecx - string length
...
ret
endp
如果上述代码在给定计数器时产生字符串“ABCDEFG”,则以下代码将产生反向字符串“GFEDCBA”:
您的代码不完整。您的
循环
转到未知标签。什么字符串可以反转呢?当更容易使用其他字符串作为循环条件时,不要使用loop
。如果调用者传递开始和结束字符,您可以执行类似于dec al
/cmp al、dl
/jae L1
(其中al
是当前字符,dl
是下限)。
proc1 PROC USES ecx
mov al, 'A' ;Stores characther
L1: call WriteChar ;Writes character
inc al ;Increment al
loop L1
ret
proc1 ENDP
proc1 PROC USES ecx
mov al, 'G' ;Stores characther
L1: call WriteChar ;Writes character
dec al ;Decrement al
loop L1
ret
proc1 ENDP