【发布时间】:2013-10-22 19:07:05
【问题描述】:
我已经用汇编语言写了我的名字,我想把它向后打印。我不知道如何向后写。
这是我需要向后打印的代码。
TITLE this is a a-to-z program (backchar.asm)
; Penpa Gyaltsen
INCLUDE Irvine32.inc
.data
space byte ' ',0
myname byte "Penpa Gyaltsen",0
copyofname byte lengthof myname dup(?)
.code
main PROC
mov eax,0
mov ecx,lengthof myname
mov esi,0
backloop:
mov al,myname[esi]
mov copyofname[esi],al
call writechar
mov edx,offset space
call writestring
inc esi
loop backloop;
call crlf
exit
main ENDP
END main
【问题讨论】:
-
你尝试了什么?由于
esi用于索引字符串,因此您可以将其从末尾开始并递减,而不是从 0 开始并递增。 -
mov al,myname[esi] mov copyofname[esi],al call writechar mov edx,offset space call writestring dec esi
-
由于这看起来像是家庭作业,您可能不会得到完整的答案。 “在此处输入代码”在 StackOverflow 上不起作用。
-
是的,我知道,但如果你给我更多的提示,我就可以试试。我第一次尝试这个。请给我更多提示。
-
这不是调试服务,也不是代码编写服务。此外,我怀疑是否有人仍在使用
Irvine32.inc。
标签: assembly x86 masm irvine32