求个很基础的程序

来源:百度知道 编辑:UC知道 时间:2024/09/22 18:29:09
将字符串反置
例如:字符串为“hello”
反置为“olleh”
请给出你的思路和尽详细的注释
谢谢
shinesnow_wy 谢谢你,我基本明白了,但我是汇编小白
可以给出个完整的程序代码吗?

思路很简单呀,用push命令逐一将字符压站,再逐一弹出,顺序就反了

STR DB 'HELLO' ;定义一个字符串

MOV DX,SEG STR
MOV DS,DX
MOV SI,0
MOV CX,5 ;字符串长度决定循环次数

LOOP1:
MOV AL,STR[SI] ;取出一个字符
PUSH AL ;将取到的字符压入堆栈
INC SI ;准备取下一个字符
LOOP LOOP1

MOV CX,5 ;再循环一次
MOV SI,0 ;重新指向字符串首地址

LOOP2:
POP AL ;按后进先出顺序逐一弹出字符
MOV STR[SI],AL ;将弹出的字符逐一装入字符串原来的地址
INC SI
LOOP LOOP2

这样字符串就在原位置反置了