- 1、本文档共87页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]第4章 微机原理
重 点 汇编语言源程序格式与开发 常量、变量和标号 汇编语言程序设计方法 顺序程序设计 分支程序设计 循环程序设计 子程序设计 汇编语言程序与高级语言的接口 4.1 汇 编 语 言 汇编语言是一种以处理器指令系统为基础的低级程序设计语言,它采用助记符表达指令操作码,采用标识符号表示指令操作数; 利用汇编语言编写程序的主要优点是可以直接、有效地控制计算机硬件,因而容易创建代码序列短小、运行快速的可执行程序; 在有些应用领域,汇编语言的作用是不容置疑和无可替代的; 汇编程序设计的过程是与其他高级语言程序设计大致相同。 汇编语言源程序的结构 汇编语言源程序通常由一个或几个程序模块组成,每个模块一般由三个逻辑段组成: 数据段——存放数据、变量 堆栈段——堆栈区域 代码段——存放程序指令 一个基本的汇编语言程序框架如下: stack SEGMENT PARA ‘stack‘ DB 100 DUP(‘stack’) stack ENDS data SEGMENT 数据、变量在此定义 data ENDS code SEGMENT ASSUME CS:code, DS:data, ES:data start: MOV AX, data MOV DS, AX MOV ES, AX 此处加入你自己的程序段 MOV AL, 4CH INT 21H code ENDS END start 编写汇编语言程序步骤 分析实际问题,抽象描述问题的模型; 确定解决模型的算法; 按算法画出程序流程图; 分配内存工作单元和寄存器; 按流程图编写程序; 上机调试, 运行程序。 汇编语言程序设计与执行过程 输入汇编语言源程序 源文件 .ASM 汇编(编译) 目标文件 .OBJ 链接 可执行文件 .EXE 调试 最终程序 简化段定义格式 .model small ;定义程序的存储模式(小型模式) .stack ;定义堆栈段(默认是1KB空间) .data ;定义数据段 …… ;数据定义 .code ;定义代码段 start: mov ax,@data ;程序起始点 mov ds,ax ;设置DS指向用户定义的数据段 …… ;程序代码 mov ax,4c00h int 21h ;程序结束点,返回DOS …… ;子程序代码 end start ;汇编结束,同时指明程序起始点start 在屏幕上显示一段信息:wjl301.asm ;wjl301.asm .model small .stack .data string db ’Hello, Assembly !’,0dh,0ah,’$’ .code start: mov ax,@data mov ds,ax mov dx,offset string mov ah,9 int 21h mov ax,4c00h int 21h end start 汇编语言程序的开发过程(附录B) 开发过程1:源程序的编辑 源程序文件要以ASM为扩展名 源程序文件的形成(编辑)可以通过任何一个文本编辑器实现: DOS中的全屏幕文本编辑器EDIT 其他程序开发工具中的编辑环境 Windows中的记事本Notepad EDIT wjl301.asm 开发过程2:源程序的汇编(MASM 6.x) 汇编是将源程序翻译成由机器代码组成的目标模块文件的过程 MASM 6.x提供的汇编程序是ML.EXE: ML /c wjl301.asm 如果源程序中没有语法错误,MASM将自动生成一个目标模块文件(wjl301.obj);否则MASM将给出相应的错误信息。这时应根据错误信息,重新编辑修改源程序后,再进行汇编。 开发过程2:源程序的汇编(MASM 5.x) MASM 5.x提供的汇编程序是MASM.EXE: MASM wjl301.asm; 如果利用分号“;”结尾命令,则汇编程序不再提示输入
文档评论(0)