汇编语言程序设计之机器语言、源程序结构和运算符
需积分: 0 127 浏览量
更新于2024-06-29
收藏 230KB PPTX 举报
汇编语言程序设计
本资源主要介绍汇编语言程序设计的基本概念、汇编语言的结构、数据定义、运算符、基本结构程序设计、操作系统资源的使用等内容。
**机器语言、汇编语言与高级语言**
机器语言是计算机能够直接理解和执行的二进制代码,而汇编语言采用助记符表示机器语言,便于理解和记忆。汇编语言是介于机器语言和高级语言之间的一种语言,具有机器语言的效率和高级语言的易用性。
**汇编语言的主要功能**
汇编语言的主要功能包括:
1. 检查源程序,测出源程序的语法错误,并给出出错信息。
2. 产生源程序的目标文件(二进制),并给出列表文件。
3. 展开宏指令。
常用的汇编程序有Microsoft的MASM和Borland的TASM。
**编程调试过程**
编程调试过程包括五步:
1. 编辑EDIT文件名(.ASM)。
2. 汇编MASM文件名(.ASM)。
3. 连接LINK文件名(.OBJ)。
4. 运行文件名(.EXE)。
5. 调试DEBUG文件名.EXE。
**DOS装入EXE文件后内存的分配状况**
当DOS装入EXE文件后,内存的分配状况如下:
* DS、ES、CS、SS、SP等寄存器被自动设置为指向PSP的首址。
* PSP的头两个字节是INT20H,用户程序可通过该指令返回操作系统DOS。
**如何使用户程序执行完后返回来执行这条指令**
为了使用户程序执行完后返回来执行这条指令,需要将用户程序定义为一个远过程。当可执行文件装入内存后,DS、ES两个段寄存器被CPU自动设置为指向PSP的首址。程序的开始指令为:
PUSH DS
XOR AX, AX
PUSH AX
程序结束时的最后一条语句为RET,就把压入堆栈的PSP段的段基址和偏移量0000H弹出并送入CS和IP,转而执行返回DOS的指令INT20H。
**堆栈情况**
堆栈情况可以通过以下代码实现:
DATAS SEGMENT
MSG DB 'Helloworld','$'
DATASEND
CODES SEGMENT
MAIN PROC FAR
ASSUME CS:CODES, DS:DATAS
START:
PUSH DS
XOR AX, AX
PUSH AX
MOV AX, DATAS
MOV DS, AX
MOV DX, OFFSET MSG
MOV AH, 09H
INT 21H
RET
**编程实例**
以下是一个简单的汇编语言程序设计实例:
DATAS SEGMENT
MSG DB 'Helloworld','$'
DATASEND
CODES SEGMENT
MAIN PROC FAR
ASSUME CS:CODES, DS:DATAS
START:
PUSH DS
XOR AX, AX
PUSH AX
MOV AX, DATAS
MOV DS, AX
MOV DX, OFFSET MSG
MOV AH, 09H
INT 21H
RET
MAIN ENDP
CODES ENDS
END START
该实例展示了如何使用汇编语言设计一个简单的程序,包括数据定义、代码段、堆栈情况等内容。
2022-11-14 上传
2022-11-14 上传
2022-11-14 上传
2022-06-20 上传
2022-11-14 上传
2022-11-14 上传
xinkai1688
- 粉丝: 383
- 资源: 8万+
最新资源
- Angular实现MarcHayek简历展示应用教程
- Crossbow Spot最新更新 - 获取Chrome扩展新闻
- 量子管道网络优化与Python实现
- Debian系统中APT缓存维护工具的使用方法与实践
- Python模块AccessControl的Windows64位安装文件介绍
- 掌握最新*** Fisher资讯,使用Google Chrome扩展
- Ember应用程序开发流程与环境配置指南
- EZPCOpenSDK_v5.1.2_build***版本更新详情
- Postcode-Finder:利用JavaScript和Google Geocode API实现
- AWS商业交易监控器:航线行为分析与营销策略制定
- AccessControl-4.0b6压缩包详细使用教程
- Python编程实践与技巧汇总
- 使用Sikuli和Python打造颜色求解器项目
- .Net基础视频教程:掌握GDI绘图技术
- 深入理解数据结构与JavaScript实践项目
- 双子座在线裁判系统:提高编程竞赛效率