如果要将一些数字按照原来的顺序逆序存放,一般就用到栈了。
第一种实现方法不太常用,一般是将栈和数据定义到一个段里面。

assume cs:codecode segmentdw 1234h,5678h;定义数据dw 0,0;定义栈段s  :mov ax, csadd ax, 4mov ss, ax;定义栈段mov sp, 8;定义栈底,留心内存溢出,不要上溢到数据段mov bx, 0mov cx, 2;设置循环次数
s0: push cs:[bx];入栈add bx,2;移动指针到下一位置loop s0mov cx, 2
s1: pop axloop s1mov ax, 4c00hint 21hcode ends
end s

第二种方法是将栈放入栈段,数据放入数据段。这样代码的可读性较强。

assume cs:codes,ds:data,ss:stackdata segmentdw 1111h,2222h,3333h,4444h
data endsstack segmentdw 0h,0h,0h,0h
stack endscodes segment
start:mov ax, datamov ds, ax;更改数据段mov ax, stackmov ss, ax;更改栈段mov sp, 8;定义栈的大小mov bx, 0mov cx, 4s0: push ds:[bx];入栈add bx, 2loop s0mov cx, 4
s1: pop axloop s1mov ax, 4c00hint 21h;调用21号中断codes ends
end start

debug结果:

汇编_stack的使用相关推荐

  1. GCC 编译 C++ 程序分步骤流程(预处理 gcc -E、编译 gcc -S、汇编 gcc -c 和链接 gcc 以及 gcc -o 选项)

    C 或者 C++ 程序从源代码生成可执行程序的过程,需经历 4 个过程,分别是预处理.编译.汇编和链接. 同样,使用 GCC 编译器编译 C 或者 C++ 程序,也必须要经历这 4 个过程.但考虑在实 ...

  2. 实验四:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用

    贺邦+原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验目的: 使用库函数 ...

  3. 经常使用ARM汇编指令

    一面学习,一面总结,一面记录. 以下是整理在网上找到的一些资料,简单整理记录一下,方便以后查阅. ARM处理器的指令集能够分为跳转指令.数据处理指令.程序状态寄存器(PSR)处理指令.载入/存储指令. ...

  4. 初学 Delphi 嵌入汇编[3] - 第一个 Delphi 与汇编的例子

    前面知道了一个汇编的赋值指令(MOV), 再了解一个加法指令(ADD), 就可以做个例子了. 譬如: ADD AX,BX; 这相当于 Delphi 中的 AX := AX + BX; 另外提前来个列表 ...

  5. Linux 应用程序 嵌汇编,Linux下C语言嵌汇编

    Using Assembly Language in Linux. Intel和AT&T汇编语法差异: 1.前缀: Intel汇编寄存器和立即数无需前缀.后者寄存器前缀为%,立即数前缀为$. ...

  6. arm linux 启动之一:汇编启动到start_kernel

    描述arm linux启动的概要过程,以S5PV210(Cortex A8)为例,本文描述第一个阶段. 一.arm linux的引导 uboot在引导arm linux(uImage镜像)到SDRAM ...

  7. 32位汇编寄存器及汇编指令

    32位CPU所含有的寄存器有: 4个数据寄存器(EAX.EBX.ECX和EDX) 2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP) 6个段寄存器(ES.CS.SS.DS.FS和 ...

  8. 祝贺《WCF邮件通信系统》在高阳市场研究汇编第五期发表

    上次给公司的市场研究汇编投稿,只写了一个PPT格式的<WCF邮件通信系统>,编辑把它整理成了PDF格式的内容,感觉很好,所以我把PDF原文中的有关内容存储成了图片,发表在这里,庆贺一下. ...

  9. ATT汇编语言与GCC内嵌汇编简介

    AT&T汇编语言与GCC内嵌汇编简介 1 AT&T 与INTEL的汇编语言语法的区别 1.1大小写 1.2操作数赋值方向 1.3前缀 1.4间接寻址语法 1.5后缀 1.6指令 2 G ...

  10. Linux下的ATT语法(即GNU as 汇编语法)入门

    学习这么长时间,一直在C语言这一层面上钻研和打拼,日积月累,很多关于C的疑惑在书本和资料中都难以找到答案.程序员是追求完美的一个种群,其头 脑中哪怕是存在一点点的思维黑洞都会让其坐卧不宁.不久前在it ...

最新文章

  1. VMware中安装CentOS7网络配置静态IP地址,常用配置和工具安装
  2. CodeSmith基础(七)
  3. pyqt5教程9:Widgets组件
  4. php写带分页的留言板,php中分页程序之基于留言板详解_PHP教程
  5. Xamarin 设置可接受的版本
  6. 详解深度学习框架制造原理
  7. 1. 使用 MegaRAID Storage Manager 监控
  8. 界面开发控件DotNetBar for WPF教程:MobileRibbon快速入门指南
  9. 九宫格拼图游戏的总结
  10. 【机器学习】十三、一文看懂Bagging和随机森林算法原理
  11. 实对称矩阵一定要用正交矩阵来对角化吗?
  12. JAVA开发常见单词(*)
  13. 比较横截面与时间序列的因子模型
  14. Jquery锚点缓慢移动到目标位置
  15. vue中使用i18n
  16. 浅谈一下个人基于IRIS后端业务开发框架的理解
  17. leetcode 滑动窗口1
  18. mysql4.0做主从时主库的备份脚本
  19. 【信管1.6】计算机网络基础(四)网络规划与数据软件
  20. 随身理财专家“挖财”推iPad应用,新增帐号对比功能

热门文章

  1. 微信公众号订阅号与微信服务号区别
  2. 计算机无法连接声音怎么办,电脑耳机没声音怎么设置|耳机插电脑没有声音解决方法...
  3. ai的预览模式切换_ai模式切换快捷键是什么,Adobe Illustrator模式切换快捷键是什么?...
  4. MarkText常用快捷键
  5. python中怎么定义二维数组_如何在Python中定义二维数组
  6. X509证书信任管理器类的实现及应用
  7. uni实现前端分页功能
  8. 【渝粤题库】陕西师范大学201461 司法文书写作作业(高起专)
  9. 我们项目中的VO、DTO、DO、PO有什么区别,你用对了吗?
  10. 关于idea链接oracle数据库出现IO 错误: Got minus one from a read call, connect lapse 1 ms., Authen