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

北航微机原理幻灯片-第四章

38页
  • 卖家[上传人]:F****n
  • 文档编号:88136767
  • 上传时间:2019-04-19
  • 文档格式:PPTX
  • 文档大小:111.25KB
  • / 38 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、,第四章 汇编语言程序设计,4.1 汇编语言编程,汇编语言,汇编语言 利用指令助记符、符号地址、标号来编写的语言 MOV, ADD,AND,CMPSB,. X DB HELLO Next:MOV AL, BL 源程序:指令伪指令 伪指令:没有对应的机器指令,数据定义,存储区分配,段定义 机器语言程序 机器语言程序 汇编语言程序 0000 B0 09 MOV AL, 9 0002 04 08 ADD AL, 8 0004 F4 HLT,汇编语言程序的执行,MASM:8086系统常用的汇编程序 汇编:检查语法错误,生成二进制目标文件 链接:把一个或多个目标文件、库文件合成一个可执行文件 程序错误 汇编错误MASM 运行错误调试工具Debug,汇编语言程序的执行,1、编写 使用文本编辑工具,以ASCII码的形式编写程序,程序文件后缀名为.ASM 2、汇编 把源文件翻译成目标文件,.ASM.OBJ,使用MASM命令,如:C:MASM 文件名.ASM; 取消提问,采用默认设置,加; .lst列表文件:源程序与目标程序对应表 .crf交叉索引文件:源程序中定义的符号和引用符号的情况 3、链接 .O

      2、BJ.EXE,使用LINK命令,如:C:LINK 文件名; 取消提问,采用默认设置,加; 4、执行 C:文件名,演示,汇编程序举例: 在屏幕上显示字符串“Test”,STACK SEGMENT STACK DW 100 DUP(0) STACK ENDS DATA SEGMENT X DB Test,0DH,0AH,$ DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA, SS:STACK MAIN PROC FAR START: PUSH DS XOR AX,AX PUSH AX MOV AX, DATA MOV DS, AX MOV DX, OFFSET X MOV AH, 9 INT 21H RET MAIN ENDP CODE ENDS END MAIN,指令,堆栈段,数据段,代码段,由段组成 段定义伪指令格式 由指令和伪指令组成,汇编语言程序分析,堆栈段 定义堆栈段的两种方式 声明作为堆栈段使用 STACK SEGMENT STACK 使得SS:SP指向本段 数据段 存放程序数据 代码段 至少有一个代码段 段分配伪指令:ASSUME(

      3、特殊:代码段) 可包含多个程序(过程):过程定义调用格式,主程序,子程序 INT 21H的9号功能 结尾语句 END 加上主程序名称或程序执行起始名称,汇编语言程序分析,程序段前缀(PSP) 在DOS操作系统装入该文件运行时存入,256个字节的信息区 可执行文件特有,进程控制和管理 可执行程序在内存中的存放(图),汇编语言程序分析,利用程序段前缀返回DOS 考虑:如果将程序定义成NEAR? 另外一种退出方式 INT 21H 4C号功能,汇编程序总结,汇编程序包括: 段定义 段分配 设置段地址 程序逻辑(程序实现的功能) 返回DOS语句 程序结束 必要时还有过程调用和宏汇编,4.2 MASM中的表达式,与指令的区别,区别: MASM中的表达式:在汇编时计算 指令助记符:在程序执行时运算 类别 算术、逻辑、数值返回.,算术运算符,算术运算 , - *, /, SHL, SHR 运算的结果和对象都是整数 例如: ARRAY DB 1,2,3,4,5,6,7,8 TRY DB 20 MOV AX, 30*5 MOV CX, (TRY-ARRAY); 地址之差为数组长度,存入CX 汇编时,计算表

      4、达式形成指令: MOV AX, 150 MOV CX, 8,逻辑运算符,逻辑运算 AND, OR, XOR, NOT 举例 MOV AL, NOT 0FFH MOV BL, 8CH AND 73H MOV AH, 8CH OR 73H MOV CH, 8CH XOR 73H 汇编时,计算表达式形成指令: MOV AL, 0 MOV BL, 0 MOV AH, 0FFH MOV CH, 0FFH,关系运算符,EQ, NE, LT, LE, GT, GE 运算结果是一个数值 若为真,输出全是1 若为假,输出全是0 举例 MOV AX, 10H GT 16 MOV BL, 6 EQ 0110B 汇编时,形成指令: MOV AX, 0 MOV BL, 0FFH,数值返回,TYPE:返回变量的类型属性或标号的距离属性 例如 A1 DB 20H A2 DW 0438H A3 DD ? L1: MOV AH, TYPE A1 MOV BH, TYPE A2 MOV AL, TYPE A3 MOV BL, TYPE L1 汇编时形成指令: MOV AH,1 MOV BH,2 MOV AL,4 MOV

      5、BL,0FFH,数值返回,LENGTH 当变量使用DUP时,返回此变量包含的单元数,对其他变量则返回1 例如 M1 DW 100 DUP(?) M2 DW 1,2,3 M3 DB ABCD MOV CX, LENGTH M1 MOV BL, LENGTH M2 MOV AL, LENGTH M3 汇编时,形成指令: MOV CX, 100 MOV BL, 1 MOV AL, 1,MASM中的表达式,SEG, OFFSET SIZE (SIZE = TYPE* LENGTH) 返回变量包含的总字节数 例如 MOV CX, SIZE M1 MOV BL, SIZE M2 MOV AL, SIZE M3 汇编时,形成指令: MOV CX, 200 MOV BL, 2;M2地址指向两字节的1 MOV AL, 1;M3地址指向1个字节的A,4.3 伪指令语句,数据定义语句,格式 变量名 D* 操作数,操作数, 变量名 D* n DUP(操作数,操作数,) 常用:DB, DW, DD(1、2、4)个字节的存储单元 注意 用DW定义字符串时,只能包括2个字符 多于2个用DB X DW AB 操作数用

      6、?定义不确定值的变量 操作数DUP用来定义重复变量 变量的定义必须放在数据段内,数据定义语句,DW 将变量或标号的偏移地址存入存储器 DD 将变量或标号的偏移地址存入低字位,段基址存入高字位 举例,表达式赋值语句,格式 符号名 EQU 值 定义变量,标号,常数,指令 PURGE用来取消EQU的定义 举例,段定义语句,格式 段名 SEGMENT 定位类型 组合类型 分类名 逻辑段内容 段名 ENDS 定位类型(图):存放地址类型 PAGE:1 PAGE256字节 物理地址*00H PARA :1 PARA16字节 物理地址*0H 缺省 WORD:1 WORD2字节 从偶地址开始 BYTE:可从任何地址开始存放,段定义语句,组合类型 PUBLIC 本段与其他同名同分类名的段组成一个逻辑段,根据链接命令指定的前后顺序放置,同时满足定位类型要求 COMMON 本段与其他同名同分类名的段组成一个逻辑段,根据链接命令指定的前后顺序覆盖放置(后面覆盖前面) 举例 STACK 指定本段为堆栈段 NONE:缺省参数,各段独立存在于存储器中 分类名 在汇编程序链接时将所有分类名相同的逻辑段组成一个段组,段

      7、分配语句,格式 ASSUME CS:段名, DS: 段名, SS: 段名, ES: 段名 4种逻辑段中代码段必须定义 CS:代码段的段基址自动装入CS寄存器中,过程定义语句,过程定义 格式 过程调用 格式,程序开始和结束语句,ORG 格式:ORG 表达式 指定下面语句的起始偏移地址 表达式计算结果必须是正整数 END 格式 源程序的最后一行 标号为主程序模块的第一条可执行语句的标号或主程序名称 举例,4.4 常用DOS子程序,常用DOS子程序,1号功能 从键盘上键入1个字符并显示,字符的ASCII码存入AL中 等待输入 2号功能 在屏幕上显示1个字符,ASCII码送入DL寄存器 6号功能 用于判断当前有无按键按下 DL=0FFH ZF=1无键按下 8号功能 类似1号调用,键入的字符不显示在屏幕上 9号功能 显示字符串,DS:DX(字符串首地址),以$字符结束 4C号功能 退出DOS,4.5 宏汇编,宏定义与宏调用,格式 定义宏:在代码段外定义 引用宏:在代码段内调用 举例:定义宏在引用宏之前 与子程序区别 调用方法不同:宏名 Vs. CALL指令 传递参数方式不同:实参/形参 Vs.

      8、R/M/堆栈 目标程序长度不同:宏展开 Vs. 同一目标程序段 执行速度不同:无需保存返回地址 Vs. 返回地址入栈出栈 总结 速度 存储空间,4.6 汇编语言程序举例,典型应用,字符串移动、比较以及查找(包括字节、字、有符号及无符号数) 判断正副、奇偶及大小 字符的输入与显示(不同数制及字符),4.7 上机安排,上机,上机1 从键盘输入一字符串,按大小排序并显示结果 上机2 从键盘输入两个四位十进制数(以非压缩型BCD码存放在数据段中),在屏幕上以十进制方式显示两数相加的结果,动态调试工具软件,DEBUG DOS提供的一个外部命令 用于对程序进行动态调试 功能演示 -r 查看寄存器值 -d 查看给定地址的存储器内容 u 反汇编功能 -g 连续执行 -t -p(不进入子程序) 单步执行 -e 查看和修改存储器内容 -q 退出,作业,P205 1,3,4,5,6,第四章内容回顾,汇编语言程序的组成:指令和伪指令的基本书写格式 常用伪指令:数据定义,符号定义,指定存贮单元类型,段定义(定位类型及连接类型),段寄存器说明,过程(子程序)定义,多模块间相互调用,源程序结束 汇编语言程序的执行过程:汇编语言源程序的编写、汇编(MASM.EXE的使用)与连接(LINK.EXE的使用) 、运行及调试工具软件DEBUG常用命令(-r, -d, -e, -u, -g, -t, -p)的使用,程序段前缀PSP 常用DOS子程序(INT 21H的1、2、8、9号功能)调用,入口参数,出口参数 不同结构程序设计举例:简单、分支、循环、子程序设计,

      《北航微机原理幻灯片-第四章》由会员F****n分享,可在线阅读,更多相关《北航微机原理幻灯片-第四章》请在金锄头文库上搜索。

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