さて、文字列を逆方向に印刷する必要があります。ebxが文字列配列の先頭へのポインタである場合、文字列の2番目の文字である配列の次のバイトに移動するためにebxを追加できないのはなぜですか?
PROMPT:
.ascii "Enter the string to evaluate \0"
FMT_STR:
.ascii "%s\0"
FMT_INT:
.ascii "%d\0"
FMT_CHR:
.ascii "%c\0"
.globl _main
_main:
pushl %ebp # save old frame ptr
movl %esp,%ebp # set new frame ptr & save local var space
//create local variable space
subl $100,%esp
pushl $PROMPT
call _printf
leal -4(%ebp),%ebx
pushl %ebx
call _gets
call _rprint
leave
ret
_rprint:
pushl %ebp
movl %esp,%ebp
pushl -1(%ebx)
pushl $FMT_CHR
call _printf
leave
ret
編集:メモを読み直して、文字列の次の文字に移動するには8を増やす必要があることに気付きました。