用汇编语言编写完整程序,从键盘读入一个符号串,吧各符号颠倒顺序后放回原处,然后输出颠倒后的结果。

来源:百度知道 编辑:UC知道 时间:2024/06/18 16:00:13
这个提我不会做,求高手教我,最后有注释讲解具体过程

;程序在masm 6.x中编译
outstr macro string ;定义宏,用以输出字符串。不定义可以
local next,tmp
ifnb <string>
jmp next
tmp db '&string','$'
next: push ax
push dx
push ds ;保护寄存器
mov ax,seg tmp
mov ds,ax
mov dx,offset tmp
mov ah,09h
int 21h
pop ds
pop dx
pop ax
endif
endm
br macro ;定义宏进入回车换行
push ax
mov ah,0eh
mov al,0dh
int 10h ;调用bios输出换行符
mov al,0ah
int 10h ;调用bios输出回车符
pop ax
endm
buffersize = 20 ;设置数据缓冲区大小
dseg segment 'data' ;定义数据段
buffer db buffersize,?,buffersize dup(0);串实践最长为buffersize-1
dseg ends
sseg segment stack ;定义栈
db 1024 dup(0)
sseg ends
cseg segment 'code'
assume cs:cseg
start: outstr <请输入字符串:> ;调用宏输出提示,有的环境不支持中文,那么,就用英文代替<>中的内容
mov ax,dseg
mov ds,ax
mov dx,offset buffer ;设置ds:dx对准缓冲区
mov ah,0ah