赞
踩
【任务】
程序功能:从键盘上输入一个字符串,以$
结束,将字符串倒序输出(字符串不超过80个字符)。
输入样例:abcd#1234 efg$
输出样例:gfe 321#dcba
算法要求:逐个输入字符(21H中断的01H功能)并压栈,遇$
后,将字符出栈按倒序写入数据区,输出字符串(21H中断的09H功能)
技术要求:用.data、.code等伪指令,写“简洁型”程序
【参考解答】
.8086 .MODEL small .data str db 81 dup ('$') ;初始全$,前面加任意字符后均可结束 .stack 100H .code start: mov ax,@data mov ds,ax mov cx, 0 input: mov ah, 01 ;输入字符并压栈,直到¥ int 21h cmp al, '$' je reverse push ax ;实际关心的,只是al中的字符 inc cx jmp input reverse: ;反转并存储 lea bx,str mov si, 0 b_rev: pop ax mov [bx+si], al ;将从栈中倒序取出的数据存储下来 inc si loop b_rev output: lea dx,str ;字符串的起始地址放dx mov ah, 09h int 21h ;输出 stop: mov ax,4c00h int 21h end start
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。