反向输出字符串(汇编语言),求助

maoyp 2008-03-22 10:37:38
具体要求是:
1.先输出一个字符串
2.然后反向将此字符串输出(如student,反向后为tneduts)

谢谢大家!
...全文
922 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
嗷嗷叫的老马 2008-03-25
  • 打赏
  • 举报
回复
..............
iasp 2008-03-25
  • 打赏
  • 举报
回复
data segment
user_string db 100,0,10 dup(?)
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax ;把数据段寄存器赋值给ds
lea dx,user_string ;建立输入字符串缓冲区
mov ah,0Ah ;
int 21h ;ah=0aH 请求键盘输入到缓冲区中断
xor si,si ;si清零
xor bx,bx ;bx清零
mov bx,dx ;把缓冲区的地址给bx
mov cx,[bx+si+1] ;看这个就是"寄存器间接寻址方式"
xor ch,ch ;其目的就是取实际输入字符个数
mov di,cx
lop: mov ah,2;ah=2H 请求输出dl中的值
mov dl,[bx+di+1];看这又是"寄存器间接寻址方式"
int 21h ;其目的就是取输入字符串的最后一个字符
dec di
loop lop ;依次循环倒着输出字符 loop循环又cx控制循环次数;
mov ah,4ch ;ah=4cH 带返回码结束 返回码存放在al中
int 21h
code ends
end start
iasp 2008-03-25
  • 打赏
  • 举报
回复
_TEXT 	segment word public 'CODE'
assume cs:_TEXT,ds:_DATA,ss:_STACK
addem proc far
mov ax,_DATA
mov ds,ax
mov ax,a
mov ax,b
mov c,ax
mov ax,4c00h
int 21h
addem endp
_TEXT ends
_DATA segment word public 'DATA'
a dw 3
b dw 4
c dw ?
_DATA ends
_STACK segment para stack 'STACK'
db 128 dup(?)
_STACK ends
end addem
iFree 2008-03-24
  • 打赏
  • 举报
回复

reversalstr PROC NEAR string
PUSHAD
MOV ESI, string
MOV EDI, ESI
_L1:
LODSB
CMP AL, 0
JNE _L1
DEC ESI
_REL:
DEC ESI
CMP ESI, EDI
JBE _END
MOV AL, BYTE PTR [ESI]
MOV AH, BYTE PTR [EDI]
MOV BYTE PTR [ESI], AH
STOSB
JMP _REL
_END:
POPAD
MOV EAX, string
RET
reversalstr ENDP


请问楼主? 这是老师布置的练习还是透漏的考试题?? 建议自己学习一下!
iFree 2008-03-24
  • 打赏
  • 举报
回复

reversalstr PROC NEAR string
MOV ESI, string
MOV EDI, ESI
_L1:
LODSB
CMP AL, 0
JNE _L1
DEC ESI
_REL:
DEC ESI
CMP ESI, EDI
JBE _END
MOV AL, BYTE PTR [ESI]
MOV AH, BYTE PTR [EDI]
MOV BYTE PTR [ESI], AH
STOSB
JMP _REL
_END:
MOV EAX, string
RET
reversalstr ENDP
用户 昵称 2008-03-23
  • 打赏
  • 举报
回复
手头没有汇编,用输出字符方式就可以了,不用费事将字符串事先反向。
u12345hn 2008-03-23
  • 打赏
  • 举报
回复
大致思路是你将单词读入后,存放在一个堆栈中,记得保留地址,然后反向pop,就ok

21,453

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧