汇编程序:将字符串倒序输出

简介: 【任务】   程序功能:从键盘上输入一个字符串,以结束,将字符串倒序输出(字符串不超过80个字符)。

【任务】
  程序功能:从键盘上输入一个字符串,以结束,将字符串倒序输出(字符串不超过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
目录
相关文章
|
4天前
51单片机用汇编语言实现独立按键检测,每个按键有不同功能,包含按键消抖程序
51单片机用汇编语言实现独立按键检测,每个按键有不同功能,包含按键消抖程序
8086 汇编笔记(五):包含多个段的程序
8086 汇编笔记(五):包含多个段的程序
|
2月前
|
C语言
程序技术好文:部分ARM汇编指令解读
程序技术好文:部分ARM汇编指令解读
|
3月前
|
编译器 开发者 C++
8086 汇编笔记(三):第一个程序
8086 汇编笔记(三):第一个程序
|
3月前
|
存储 编译器
C51汇编程序
C51汇编程序
31 5
|
存储 Java C++
汇编语言、寄存器分类及程序计数器
汇编语言、寄存器分类及程序计数器
114 0
进阶C语言 第七章-------《程序的编译(预处理操作)+链接》 (预编译、编译、汇编、#define、条件编译,#include的包含)知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(三)
进阶C语言 第七章-------《程序的编译(预处理操作)+链接》 (预编译、编译、汇编、#define、条件编译,#include的包含)知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(三)
|
编译器 C语言
进阶C语言 第七章-------《程序的编译(预处理操作)+链接》 (预编译、编译、汇编、#define、条件编译,#include的包含)知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(二)
进阶C语言 第七章-------《程序的编译(预处理操作)+链接》 (预编译、编译、汇编、#define、条件编译,#include的包含)知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(二)
|
存储 自然语言处理 程序员
进阶C语言 第七章-------《程序的编译(预处理操作)+链接》 (预编译、编译、汇编、#define、条件编译,#include的包含)知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(一)
进阶C语言 第七章-------《程序的编译(预处理操作)+链接》 (预编译、编译、汇编、#define、条件编译,#include的包含)知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(一)
|
程序员 芯片 流计算
MOTOROLA MVME 162-01 直接用汇编语言编程的计算机程序
MOTOROLA MVME 162-01 直接用汇编语言编程的计算机程序
102 0
MOTOROLA MVME 162-01 直接用汇编语言编程的计算机程序