【发布时间】:2015-11-14 02:11:10
【问题描述】:
在以下代码中,我可以反转字符串,但我不知道如何在此代码中添加函数以获得以下结果:
输入 AbCDeF_XYz 输出:Zyx_fEdcBa
name "REVERSE"
include "emu8086.inc"
print "Enter a string:"
MOV DX,11
CALL get_string
printn
MOV DI,0x0
ReadString:
MOV AL,[ds+di]
CMP AL,0x0
JE Reverse
INC DI
PUSH AX
JMP ReadString
Reverse:
POP AX
MOV AH,0xE
INT 0x10
CMP AL,0x0
JNE Reverse
HLT
DEFINE_GET_STRING
END
【问题讨论】:
-
搜索很快就会出现:stackoverflow.com/questions/33578121/…,它有一个答案。您可以在推送字符之前或在弹出字符之后对字符进行大小写交换。 (测试它们是否在 ascii 范围内,然后与 0x20 进行异或,因为
'a' - 'A' = 0x20。所以您只需设置或清除该位即可在大写和小写之间切换。) -
我删除了我之前的评论,我现在看到了相反的
case哈哈
标签: assembly x86 dos x86-16 emu8086