汇编中的倒序输出

1、INT 21H的1号功能进行字符输入。

  • 存放在数据段,倒序输出。
DATAS SEGMENTMAXL DB 30  ;定义字符串大小做计数RLEN DB ?   ;保存实际长度STR1 DB 30H DUP(?);分配内存空间
DATAS ENDSSTACKS SEGMENTDW 60HDUP(?);分配堆栈空间TOP LABEL WORD;栈顶指针
STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS
START:MOV AX,DATASMOV DS,AXMOV AX,STACKSMOV SS,AXLEA SP,TOPMOV CL,MAXLXOR CH,CH  ;高八位清零LEA SI,STR1;初始化L1: MOV AH,1INT 21H    ;输入CMP AL,0DH ;判断是否为回车输入结束JE  FINMOV [SI],ALINC SILOOP L1
FIN:MOV CX,SISUB CX,OFFSET STR1;计数循环输出次数MOV RLEN,CL;实际输入个数保存
L2: DEC SIMOV DL,[SI]MOV AH,2INT 21HLOOP L2;逆序输出MOV AH,4CHINT 21H
CODES ENDSEND START
  • 利用堆栈倒序输出。
DATAS SEGMENT;无数据段定义
DATAS ENDSSTACKS SEGMENTDW 60HDUP(?);分配堆栈空间TOP LABEL WORD;栈顶指针
STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS
START:MOV AX,DATASMOV DS,AXMOV AX,STACKSMOV SS,AXLEA SP,TOPXOR CX,CX  ;CX清零;初始化L1: MOV AH,1INT 21H    ;输入CMP AL,0DH ;判断是否为回车输入结束JE  L2PUSH AXINC CXJMP L1
L2: POP DXMOV AH,2INT 21HLOOP L2    ;输出MOV AH,4CHINT 21H
CODES ENDSEND START


2、INT 21H的0A号功能进行字符串输入。利用堆栈操作。

DATAS SEGMENTBUFF DB 50DB ?DB 50 DUP(?)  ;缓冲区STR0 DB 0DH,0AH,24H
DATAS ENDSSTACKS SEGMENTDW 100H DUP(?)TOP LABEL WORD
STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS
START:MOV AX,DATASMOV DS,AXMOV AX,STACKSMOV SS,AXLEA SP,TOP;初始化LEA DX,BUFFMOV AH,0AHINT 21H;输入LEA DX,STR0MOV AH,9INT 21H;回车换行MOV BX,OFFSET BUFFINC BXMOV CL,[BX];字符串实际个数存放到CL寄存器中MOV AL,CLXOR CH,CH
NEXT: INC BXPUSH [BX];压栈存储LOOP NEXTMOV CL,AL
DISP: POP DX;逐个弹出MOV AH,2INT 21HLOOP DISPMOV AH,4CHINT 21H
CODES ENDSEND START

关于逆序输出就可以尽量考虑堆栈。



个人笔记,请多指教。

汇编实现字符串输入并倒序输出相关推荐

  1. 将字符串或数字倒序输出

    2019独角兽企业重金招聘Python工程师标准>>> 将字符串或数字倒序输出,以使这些呈散列分布,用于作为hbase rowkey的一部分,避免region的读写热点 public ...

  2. c语言写我爱你中国编程,.请用户输入一组字符串,”我爱你中国”,然后倒序输出该字符串;...

    满意答案 张爱家学习日记 2013.05.03 采纳率:46%    等级:13 已帮助:14101人 Scanner input=new Scanner(System.in);//定义Scanner ...

  3. python3 输入一个数然后输出他的平方_汇编实验(输入一个数输出其平方值)

    实验三 输出20以内数的平方值 题目:输入一个0到19的数字,输出这个数的平方值 要求:1.以十进制输出 2.平方值可以事先存放在表单中 3.输入范围越界要有错误提示 4.可以重复输入,直至输入空格为 ...

  4. java倒序输出数字的方法

    1.在输入框中输入一个整数,比如要输入"5",需要输出倒序,可以使用数字键盘进行输入,也可以使用文本编辑器进行输入. 2.在命令行中输入"6",如图所示. 3. ...

  5. C语言 输入一个字符串,统计字符个数,并按照倒序输出该字符串。

    题目:C语言 输入一个字符串,统计字符个数,并按照倒序输出该字符串. #include<stdio.h>void main() {char str[10];scanf("%s&q ...

  6. LeetCode输入字符串,倒序输出---C语言

    输入字符串,倒序输出-C语言 #include<stdio.h> #include<string.h> #include <iostream> using name ...

  7. 从键盘输入一个已确定长度的字符串。然后将这个字符串倒序输出

    字符:tnndwhynotdrinkit(催逝员警告) VS无法运行,会报错a[n]中必须为常量 ------------------------------------------ 代码: ​ #i ...

  8. C++ 递归算法将输入的字符串倒序输出

    C++ 递归算法将输入的字符串倒序输出 直接上代码. #include <iostream> #include<string> using namespace std; //使 ...

  9. ACMNO.27 Python的两行代码解决 C语言-字符逆序 写一函数。使输入的一个字符串按反序存放,在主函数中输入输出反序后的字符串。 输入 一行字符 输出 逆序后的字符串

    题目描述 写一函数,使输入的一个字符串按反序存放,在主函数中输入输出反序后的字符串. 输入 一行字符 输出 逆序后的字符串 样例输入 123456abcdef 样例输出 fedcba654321 来源 ...

最新文章

  1. mysql之distinct
  2. 1.3 更多边缘检测内容-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  3. Select控件可选可输入
  4. 【JVM调优工具篇】jvisualvm工具导出dump文件教程
  5. PHP可以重新定义已经存在的函数的类库patchwork
  6. (非原)如何让.net开发的Winform程序快速释放内存
  7. oracle备份恢复
  8. 一些关于Viewport与device-width的东西~(转)
  9. ECS 控制台诊断系统
  10. java笔试题_一道简单的 Java 笔试题,但值得很多人反思
  11. php对象数字属性,PHP获取对象的纯数字属性
  12. office2003 office2007同时安装 配置问题的解决
  13. 【转】switch中case与default的情况
  14. eclipse使用jsp
  15. Python3 抓取微信账单信息
  16. 《当程序员的那些狗日日子》(二十三)死在了今天的晚上
  17. vue中使用web serial api实现串口通信
  18. 常见服务器默认管理口地址
  19. 如何将flv格式的视频转换为mp4格式
  20. Android扫一扫 有仿微信版

热门文章

  1. 文件操作SaveFileDialog的用法
  2. swift学习笔记之navigationController的设置以及使用
  3. 走出 scipy 的深坑:用 numpy 实现散列数据网格化
  4. Redis6简单安装
  5. 能够可视化访问和查看H2数据库的工具
  6. Unable to locate package net-tools 处理方法
  7. 二维码解码程序的两大难点问题
  8. 计算机b类核心期刊有哪些,B类及以上期刊有哪些
  9. 【ACL Findings 2021】Does Robustness Improve Fairness? Approaching Fairness with Word Substitution R
  10. 模型可视化工具-netron网页版