汇编语言2种常用的编程框架
现在使用的汇编语言差不多都是使用这两种程序框架,两种都是前辈流传下来的经典编程框架,区别在于返回DOS方式不同!记下,以备必需时可以翻阅。
1.基于入栈的RET方式
DATA SEGMENT
......
DATA ENDS
;数据段定义
STACK SEGMENT PARA STACK
DW 20H DUP(0)
STACK ENDS
;堆栈段定义
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
PROC1 PROC FAR
PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
...;其他语句.
RET;返回DOS
PROC1 ENDP
CODE ENDS
;代码段定义
END PROC1
程序段前缀0000H处存放了一条INT 20H指令,其功能是返回DOS。为此用RET指令退出时,只要在程序入口处将PSP:0000H压入堆栈中,在程序返回处使用RET指令就可以了。(PSP:段前缀)。
实例:实现z=(4x-y)/2。
代码:
DATA SEGMENT
X DB 2
Y DB 4
Z DB ?
DATA ENDS
STACK SEGMENT PARA STACK
DW 20H DUP(0)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
PROC1 PROC FAR
PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV AL,X
MOV CL,2
SAL AL,CL;x乘与4(左移2位)
SUB AL,Y
SAR AL,1
MOV Z,AL;结果装入Z中
RET
PROC1 ENDP
CODE ENDS
END PROC1
2.基于EXE程序返回DOS的格式
DATA SEGMENT
......
DATA ENDS
STACK1 SEGMENT PARA STACK
DW 20H DUP (0)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK1
BEGIN: MOV AX,DATA
MOV DS,AX
......;其他语句
MOV AH,4CH
INT 21H;返回DOS
CODE ENDS
END BEGIN
这种格式使用DOS 21H的4C00H功能退出:
在程序需要退出返回DOS处安排如下两条指令:
MOV AX,4C00H;或者MOV AH,4CH
INT 21H
这两条指令执行后就会返回DOS,采用这种方法退出没有任何 限制,只要程序执行到这两条指令就能返回DOS。
实例:实现z=(4x-y)/2。
代码:
DATA SEGMENT
X DB 3
Y DB 4
Z DB ?
DATA ENDS
STACK SEGMENT PARA STACK
DW 20H DUP (0)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
BEGIN: MOV AX,DATA
MOV DS,AX
MOV AL,X
MOV CL,2
SAL AL,CL
SUB AL,Y
SAR AL,1
MOV Z,AL
MOV AH,4CH
INT 21H
CODE ENDS
END BEGIN
除了这两种还有其他的格式框架,主要是区别是返回DOS的方式不同!以上两种是最常用的两种格式!
----------------------------------------------------------
----------------------------------------------------------
汇编语言2种常用的编程框架相关推荐
- 几种常用深度学习框架简介
几种常用深度学习框架简介 一.TensorFlow 1.1 Tensorflow简介 1.2 使用文档 1.3 预训练模型 二.Pytorch 2.1 Pytorch简介 2.2 使用文档 2.3 预 ...
- 四种常用的自动化测试框架
一直想仔细研究框架,写个流水账似的测试程序不难,写个低维护成本的测试框架就很难了,所以研究多种测试框架还是很有必要的,知道孰优孰劣,才能在开始编写框架的时候打好基础,今天读到了KiKi Zhao的翻译 ...
- 10 种常用的CSS框架,收藏一下
文章目录 1.Bootstrap 2. Foundation 3. Materialize CSS 4. Semantic UI 5. Bulma 6. UIKit 7. PureCSS 8. Tai ...
- Java 中几种常用的 RPC 框架介绍
RPC是远程过程调用的简称,广泛应用在大规模分布式应用中,作用是有助于系统的垂直拆分,使系统更易拓展.Java中的RPC框架比较多,各有特色,广泛使用的有RMI.Hessian.Dubbo等.RPC还 ...
- rpc框架有哪些java_JAVA中几种常用的RPC框架介绍
1.dubbo: 使用Hessian的序列化协议,传输则是TCP协议,使用了高性能的NIO框架Netty 服务接口 1 public interface DemoService { 2 String ...
- Java中几种常用的RPC框架介绍
点击上方 "程序员小乐"关注, 星标或置顶一起成长 后台回复"大礼包"有惊喜礼包! 关注订阅号「程序员小乐」,收看更多精彩内容 每日英文 Crouch down ...
- 【测试开发】几种常见的自动化测试框架
几种常见的自动化测试框架 在软件测试领域,自动化测试框架有很多,这里主要介绍几种常用的自动化测试框架. 1.pytest pytest 是 Python 的一种单元测试框架,与 Python 自带的 ...
- 值得收藏的十种常用的CSS框架-蛙课网
CSS框架是预先准备好的软件框架,允许使用层叠样式表语言更容易,更符合标准的进行网页设计.大多数这些框架包含至少一个栅格设计(grid).功能更强大的框架,还配备了更多的功能和附加的基于JavaScr ...
- 几种常用编程语言的编程思想和方法 转
搞软件的人,编程语言的掌握是基本功,如果单单是学习语法,最慢的一周之内也应该可以搞定(个人认为 语法层面c++是最复杂的).不幸的是,软件的本质是逻辑,解决方案的设计是要借助某种解决问题或编程的思想的 ...
最新文章
- 活久见的设备连接故障
- 让逻辑关系破缺的最小空间尺寸
- 使用 netfilter 处理IPv6报文
- ssm mysql动态分页_SSM项目手动分页详解
- Spark IDEA 编程环境配置
- 一个简单的完成端口(服务端/客户端)类
- 罕有数据库系统之比拟 - Oracle数据库
- intel 酷睿core系列cpu的类型:U M H HQ MQ
- 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第3节 线程同步机制_4_解决线程安全问题_同步代码块...
- 插值方法 matlab 实验,matlab计算方法实验报告3(插值问题).doc
- 云erp系统、进销存软件、仓储管理系统之间有哪些区别
- 解读《美国国家BIM标准》– BIM能力成熟度模型(十一)
- 英文之妙语连珠超级94句
- Word文档怎样转化为pdf格式
- 真的存在“对事不对人”吗?
- 如何在微信朋友圈分享网页内容的时候能够有缩略图
- 神奇的多项式求导矩阵与积分矩阵
- scons构建mdk工程
- 如何通过AppStore变态审核:看同行经验
- Leetcode.463 岛屿的周长
热门文章
- 发信息服务器恢复,手机短信删除了怎么恢复?看完恢复原理你就懂了!
- 全国计算机等级考试无法缴费,全国计算机等级考试网报缴费 时间为6月20至30日...
- BZOJ 2400(网络流最小割)
- UNIX套接字“\0XXX“ 格式化抽象本地地址
- 文件上传接受的类型:file的accept属性
- scp port 22: Connection refused
- Freeswitch常见问题
- modelsim独立仿真与联合仿真生成覆盖率流程(随笔)
- [LTR] 信息检索评价指标(RP/MAP/DCG/NDCG/RR/ERR)
- 在Windows XP中对文件进行加密