汇编语言2种常用的编程框架
来源:互联网 发布:冰点还原精灵破解软件 编辑:程序博客网 时间:2024/06/16 06:11
现在使用的汇编语言差不多都是使用这两种程序框架,两种都是前辈流传下来的经典编程框架,区别在于返回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;返回DOSPROC1 ENDPCODE 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 ENDSSTACK SEGMENT PARA STACK DW 20H DUP(0) STACK ENDSCODE 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 21HCODE ENDS END BEGIN
除了这两种还有其他的格式框架,主要是区别是返回DOS的方式不同!以上两种是最常用的两种格式!
----------------------------------------------------------
----------------------------------------------------------
- 汇编语言2种常用的编程框架
- 汇编语言的硬盘编程
- 汇编语言实验2-汇编语言程序框架
- 汇编语言常用的标志寄存器
- 汇编语言中常用的指令
- Linux下的汇编语言编程
- 跨平台的汇编语言编程
- MIPS 汇编语言编程的艺术
- 汇编语言的内嵌编程
- 龙芯下汇编语言编程(2)
- android 常用编程框架
- 从汇编语言到类库框架的随感
- 汇编语言中常用的伪指令
- 汇编语言中常用的伪指令
- 汇编语言和C语言的混合编程
- 多种数制显示的汇编语言编程实现
- [编程语言][汇编语言]另类的函数调用
- 网络编程常用框架介绍
- AStyle 使用参数
- 程序员——伤不起的三十岁
- Java 多线程断点下载文件
- QRegExp正则表达式
- C#处理窗体的最小化事件及恢复正常窗体事件
- 汇编语言2种常用的编程框架
- HTML5高级编程之图形扭曲及其应用三(扩展篇)
- 将html转换为chm格式 (主要是将javadoc等文档制作为api.chm)及chm转换html
- xfire1.2+spring2.5实现分布式服务
- Javascript的调试利器:Firebug使用详解
- 安装MingW
- 吃糖果
- android手机邮件Exchange账户的设置
- java IO与网络的常用操作