电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

微型计算机原理及接口技术 教学课件 ppt 作者 林志贵 第4章 汇编语言程序设计

135页
  • 卖家[上传人]:E****
  • 文档编号:89508779
  • 上传时间:2019-05-26
  • 文档格式:PPT
  • 文档大小:2.93MB
  • / 135 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第 4 章 汇编语言程序设计,本章主要内容,4.1 汇编语言的基本语法 4.2 伪指令 4.3 系统功能调用 4.4 汇编程序的功能及汇编过程 4.5 汇编语言程序设计及举例,4.1.1 伪指令的语句格式,4.1 汇编语言的基本语法,特点:不同于指令语句,伪指令语句(又称命令语句)中的伪指令本身不产生对应的机器目标代码,功能:仅仅是告诉汇编程序,对后面的指令语句和伪指令语句的操作数应该如何产生机器目标代码,伪指令:称为助记符或伪操作字段,这是伪指令语句不可省略的主要成分。,4.1.1 伪指令的语句格式,操作数:本字段是否需要,需要几个,需要什么样的操作数等都由伪指令字段中伪指令来确定 。,注释:这是一个任选字段,它必须以分号为开始,它的作用与指令语句的注释字段相同 。,标号:又称为标号名字段,它是任选字段。目标名后面不能用冒号“:”,这是与指令语句的突出区别,1.常数 是没有任何属性的纯数值。在汇编期间,它的值已能完全确定,且在程序运行中,它也不会发生变化,4.1 汇编语言的基本语法,4.1.2 常数、变量和标号,2.变量 是代表存放在某些存储单元的数据,这些数据在程序运行期间随时可以

      2、修改。 常常以变量名的形式出现在程序中,它可以认为是存放数据存储单元的符号地址。,(1)变量的定义与预置:定义变量就是给变量分配存储单元,且对这个存储单元赋予一个符号名变量名,同时将这些存储单元预置初值。,4.1.2 常数、变量和标号,段属性:表示变量存放在哪一个逻辑段中。 偏移量属性:表示变量在逻辑段中离段起始点的字节数。 类型属性:表示变量占用存储单元的字节数。这一属性是由数据定义伪指令DB,DW,DD来规定的。,VAR_DATA SEGMENT DATA1 DB 12H DATA2 DB 34H DATA3 DW 5678H VAR_DATA ENDS,(2)数据定义伪指令:这种伪指令主要为数据项分配存储单元并预置初值。,4.1.2 常数、变量和标号,数值表达式。例如: DA_BYTE DB 50H, 50 DA_WORD DW 0A3F1H, 4981H,?表达式:不带引号的?表示可预置任何内容。 例如: DA_B DB ?,? DA_W DW ?,?,4.1.2 常数、变量和标号,字符串表达式:对于DB伪指令,为字符串中每一个字符分配一个字节单元。字符串必须是用引号括起来且不

      3、超过255个字符。字符串自左至右以字符的ASCII码按地址递增的排列顺序依次存放。 例如: STRING1 DB ABCDEF,4.1.2 常数、变量和标号,STRING2 DW AB, CD, EF STRING3 DD AB, CD,带DUP表达式:DUP是定义重复数据操作符,4.1.2 常数、变量和标号,其中表达式1是重复的次数,表达式2是重复的内容。 例如: D_B1 DB 20H DUP(?) D_B2 DB 10H DUP(ABCD) D_W1 DW 10H DUP(4),3. 标号 是一条指令目标代码的符号地址,它常作为转移指令(含子程序调用指令)的操作数。,4.1.2 常数、变量和标号,例如: LOP1: LOOP LOP1 JNE NEXT NEXT: ,(1)SEG 格式:SEG 功能是求符号名所在段的段基址。,4.1 汇编语言的基本语法,4.1.3 运算符,(2)OFFSET 格式:OFFSET 功能是求符号名所在段的偏移地址。,(3)TYPE 格式:TYPE 功能是获得符号名类型值。,4.1.3 运算符,(4)SIZE 格式:SIZE 功能是获得为符号名分配的字

      4、节数 。,(5)PTR 格式: PTR 功能是定义符号名为新类型。如,设内存变量D1是字节属性,把它的两个字节内容送到AX中。,4.1.3 运算符,MOV AX, WORD PTR D1 这里的符号名可以是间址、变址寻址、基址加变址表示的存储器操作数。,1. EQU 格式: EQU ,4.2.1符号定义伪指令(赋值语句),4.2 伪指令,特点:伪指令不是由86系列CPU执行,而是由MASM-86识别,并完成相应的功能,2. 格式: = ,4.2.1 符号定义伪指令(赋值语句),注意: 在同一程序中,用EQU语句赋值的符号名不能被重新赋值,但用“=”号赋值的符号名可以被重新赋值。,1. 字节定义伪指令DB 格式:名字 DB 功能:表达式或项表中的每一项是一个字节数,他们从符号名地址开始按字节连续存放,直到表中数据项结束,如:D1 DB 12H, 12H 12H D1 DB 3 DUP (12H) MOV AX, D1,4.2.2 内存数据定义伪指令,4.2 伪指令,注意: 表达式或数据项表多于一项时,项与项之间用逗号“,”或空格分隔 表达式或数据项重复书写时,可用重复格式DUP 需考虑符

      5、号名的类型一致,4.2.2 内存数据定义伪指令,2. 字定义伪指令DW 格式:名字 DW 功能:表达式或项表中的每一项是两个字节数,其他同DB,3. 双字定义伪指令DD 格式:名字 DD 功能:表达式或项表中的每一项是4个字节数,在内存中存放时,低位字在前,高位字在后,格式: SEGMENT 定位方式连接方式类别名 ENDS,功能:给存储器在逻辑上分段,它为程序的汇编和连接说明了段名、分段的各种属性以及分段的开始和结束,定位方式:又称定位类型,指定段的起始地址边界,4.2.3 段定义伪指令,4.2 伪指令,1. SEGMENT/ENDS,连接方式:又称组合类型,告诉连接程序本段与其他段可按某种方式连接,类别名:需用单引号括起来,凡是类型名相同的段在连接时均按先后顺序连接起来,4.2.3 段定义伪指令,例4-1 SEGMENT伪操作的定位类型应用举例。 STACK SEGMENT STACK DB 100 DUP(?) STACK ENDS DATA1 SEGMENT BYTE STRING DB This is an example! DATA1 ENDS DATA2 SEGMENT

      6、WORD BUFFER DW 40 DUP(0) DATA2 ENDS CODE1 SEGMENT PAGE CODE1 ENDS,4.2.3 段定义伪指令,CODE2 SEGMENT START: MOV AX,DATA1 MOV DS,AX CODE2 ENDS END START,4.2.3 段定义伪指令,2. 段寄存器说明伪指令ASSUME,格式:ASSUME 段寄存器:段定义名1 ,段寄存器:段定义名2, ,3. 简化段定义,4.2.3 段定义伪指令,简化段定义格式可使用三种简单的伪指令:“.CODE”、“.DATA”和“.STACK”来分别对应寄存器CS、DS和SS,功能:告诉汇编程序在汇编时,段寄存器CS:DS:SS:和ES:应具有的符号段基址,以便汇编指令时确定段和建立错误信息。但是段寄存器实际值(CS除外)还要有传送指令在执行程序时赋值,例如: .STACK 64 .DATA DATA1 DB 15H DATA2 DB 29H SUM DB ? .CODE MAIN PROC FAR MOV AX, DATA MOV DS, AX ,4.2.3 段定义伪指令,格式:

      7、PROC NEAR (或FAR) ENDP 功能:定义过程是为了实现子程序调用而设的,调用格式:CALL 过程由RET指令返回,4.2.4 过程(子程序)定义伪指令,4.2 伪指令,1. 模块开始伪指令,格式:NAME 模块名 功能:指明程序模块的开始,并指出模块名,一般取源程序文件名为模块名,2. 模块结束伪指令,格式:END 启动标号或过程名 功能:告诉汇编程序源文件结束,并给出执行程序的入口位置,4.2.5 模块定义与连接伪指令,4.2 伪指令,1. .LIST 汇编程序遇到伪操作.LIST时,禁止其后的源程序和目标代码在列表文件中输出,直到下一个.LIST为止。.LIST伪操作规定将后面的源程序和目标代码列表输出。,4.2.6 列表伪指令,4.2 伪指令,2. TITLE 格式: TITLE 标题名 这个伪操作的功能是指定列表文件每一页的标题名,标题名可以是不超过80个字符的字符串。,4.2.6 列表伪指令,3. PAGE,格式:PAGE 行数,行字数 功能:为列表文件定义每页行数(10255)和每行字符数(60132),默认值是66行,80列,2. 定位伪指令ORG,格式:O

      8、RG 功能:把以下语句定义的内存数据或程序,从表达式指定的起点(偏移地址)开始连续存放,直至遇到新的ORG指令。表达式值是一个无符号数,4.2.7 其他伪操作,4.2 伪指令,1. RADIX,格式:.RADIX 表达式 上述表达式的值应在216之间 功能:设定基数,DOS(Disk Operation System)和BIOS(Basic Input and Output System)为用户提供了两组系统服务程序。用户程序可以调用这些系统服务程序。但在调用时应注意:第一,不用CALL命令;第二,不用这些系统服务程序的名称,而采用软中断指令INT n;第三,用户程序也不必与这些服务程序的代码连接。,4.3.1 概述,4.3 系统功能调用,BIOS是微机的基本I/O系统。包括系统测试程序、初始化引导程序、一部分中断矢量装入程序及外部设备的服务程序。,4.3.1 概述,DOS是微机的操作系统,负责管理系统的所有资源,协调微机的操作,其中包括大量的可供用户调用的服务程序,完成设备的管理及磁盘文件的管理。,1. 用户与DOS的关系,4.3.1 概述,2. 用户程序控制微机硬件的方式,4.3.

      9、1 概述,目的:为编写汇编语言源程序提供方便,MS-DOS系统中设置了几十个内部子程序,它们可以完成I/O设备管理、存储管理、文件管理、作业管理等功能,注意: MS-DOS系统中设置的几十个内部子程序,可看成内部中断服务程序,用软中断指令调用。常用的中断矢量号为20H27H,4.3.2 DOS系统功能调用,4.3 系统功能调用,4.3.2 DOS系统功能调用,系统功能调用的格式: 传送入口参数到指定寄存器中(可选项) 功能号送入AH寄存器 INT 21H,4.3.2 DOS系统功能调用,INT 21H是一个具有近90个子功能的中断服务程序,这些子功能的编号称为功能号。INT 21H的功能大致可以分为四个方面,即设备管理、目录管理、文件管理和其他,(1)键盘输入单字符,矢量号 21H 功能号:AH=1 入口参数:无,格式: MOV AH, 1 INT 21H,功能:执行时,系统等待键盘输入,待程序员按下任何一键,系统先检查是否Ctrl-Break键,如果是则退出,否则将该键字符的ASCII码置入AL寄存器中,并在屏幕上显示该字符,注意:没有入口参数,4.3.2 DOS系统功能调用,(2)键盘输入字符串,矢量号 21H 功能号:AH=0AH 入口参数:内存中保存字符串的首地址,格式: BUF DB 20 DB ? DB 20,DUP(?) MOV DX,OFFSET BUF MOV AH,0AH INT 21H,功能:将键盘输入的字符串写入到内存缓冲区中,4.3.2 DOS系统功能调用,注意: 必须事先在内存储器中定义一个缓冲区,其第一字节给定该缓冲区中能存放的字节数,第二字节留给系统填写实际键入的字符个数,从第三个字节开始用来存放键入的字符串,最后键入回车()键表示字

      《微型计算机原理及接口技术 教学课件 ppt 作者 林志贵 第4章 汇编语言程序设计》由会员E****分享,可在线阅读,更多相关《微型计算机原理及接口技术 教学课件 ppt 作者 林志贵 第4章 汇编语言程序设计》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.