汇编语言程序设计之机器语言、源程序结构和运算符

需积分: 0 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 该实例展示了如何使用汇编语言设计一个简单的程序,包括数据定义、代码段、堆栈情况等内容。