String 如何按相反的顺序打印字母表的一部分?

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 我正在尝试反转字符串,但我不确定如何

我有这个功能,可以打印字母表的前N个字符:

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