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

第四章-伪指令及程序设计

104页
  • 卖家[上传人]:龙***
  • 文档编号:60833233
  • 上传时间:2018-11-19
  • 文档格式:PPT
  • 文档大小:1.39MB
  • / 104 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第四章 宏汇编语言程序设计,4.1 汇编语言程序格式 4.2 MASM中的表达式 4.3 伪指令语句 4.4 DOS系统功能调用和BIOS中断调用 4.5 程序设计方法 4.6 宏汇编和条件汇编,2018/11/19,2,4.1 汇编语言程序设计特点,汇编语言是一种用符号表示的、面向CPU指令系统的程序设计语言。是机器语言的符号表示。 基本特点: 程序设计人员能更充分地利用机器硬件的全部功能,发挥机器的长处; 程序目标代码占用内存少,执行速度快,效率高,具有实时性; 由于汇编的特点,汇编语言常用于编写计算机系统程序、实时通信程序和实时控制程序。但汇编语言程序依赖于机器硬件,其通用性和移植性都较差。,2018/11/19,3,从源程序获得目标程序的过程,汇编语言源程序 经过汇编翻译成二进制代码的浮动目标文件,然后由连接程序将目标文件和库文件相连接 生成机器上可执行的目标程序 进行汇编语言开发需要的文件: 1)汇编程序 MASM.exe 2)连接程序 LINK.EXE 3)库管理程序LIB.EXE(如果不创建子程序库,不需要该文件) 4)文本编辑器。如DOS下的EDIT 或其它开发工具中的

      2、编辑环境如Turbo C等。目的:生成.ASM文件。 5)调试程序 DEBUG,2018/11/19,4,开发的步骤(补充),1、源程序的汇编 命令格式:MASM 源程序文件名 如果没有语法错误,则生成目标模块文件.obj,否则给出错误信息 2、目标文件的连接 命令格式:LINK obj文件名 如果没有严重错误,将生成可执行文件 .exe,否则将提示相应的错误信息 3、可执行文件的执行调试 命令格式:可执行文件名 操作系统加载该文件进入主存开始运行,如果出现运行错误,可用debug.exe调试程序。 命令格式:debug 可执行程序文件名,注意:如果程序里没有的堆栈段,系统会给出warning,但不会影响程序运行。,2018/11/19,5,4-1汇编语言程序格式,汇编语言源程序用语句书写,MASM中可以使用的语句有两类:指令性语句和伪指令语句。,指令性语句:即执行性语句(指令),与机器码一一对应,表示某种确定操作,包括四部分: 标号: 指令操作码 操作数 ;注释 例: AGAN:ADC BX,AX ;累加 指示性语句:即说明性语句(伪指令),不对应机器码,只为汇编提供所需信息,由四部

      3、分组成: 名字 伪指令 操作数 ;注释 例: SUM DW 0 ;为结果保留一个字,2018/11/19,6,DATA SEGMENT SRC_LESS DB HELLO!,0DH,0AH,$ DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV DX,OFFSET SRC_LESS MOV AH,9 INT 21H MOV AH,1 INT 21H MOV AH,4CH INT 21H CODE ENDS END START,2018/11/19,7,汇编程序的基本结构要求,完整的汇编程序要包括:段定义、段分配、设置段地址、返回DOS语句、程序结束 和程序体。必要时加上过程调用。 完整汇编语言程序的典型格式 段定义格式: 段名 SEGMENT 段名 ENDS 至少有一个代码段,堆栈段如果不定义,由计算机自动分配。段名是由字母数字组成的,可以任意定义。 计算机识别不同的段靠 段分配ASSUME 语句完成 ASSUME CS:段名,DS:段名,SS:段名,ES:段名,2018/11/19

      4、,8,assume指定段与段寄存器之间的关系,但并不为段寄存器设定初值,程序中如果使用数据段或者附加段,需要明确对DS、ES赋值。只要正确书写源程序,CS、IP和SS、SP的值将会由连接程序正确设置 设置方法: MOV AX,STACK MOV SS,AX MOV AX,DATA MOV DS,AX 程序执行完毕后要返回DOS,最常用的实现方法: 全部程序以END结尾,END后面可以加上程序执行起始的名称,汇编程序遇到END就结束汇编。,MOV AX,4C00H INT 21H,2018/11/19,9,三、数据项(汇编语言中使用的操作数),1、常数 二进制数:以“B”结尾,如00001101B; 八进制数:以“O”结尾,如725O; 十六进制数:以“H”结尾,并且必须以数字打头,即若最高位为字母AF,前面应加0,如0A12H; 十进制数:以“D”结尾或省略结尾,如10D、10。 字符串常量 字符串常量表示为包含在两个单引号之间的一连串ASCII字符。每个串元素的值定义为该元素所对应的1字节ASCII码值。,2018/11/19,10,三、数据项(汇编语言中使用的操作数),2、变量:指

      5、存储在存储单元中的值,所有变量有三个属性: 段值SEGMENT:变量所在段的段基址 段内偏移地址OFFSET:变量所在地址和所在段首地址之间的偏移字节数 类型TYPE:变量中每个元素包含的字节数。 3、标号:可执行指令语句地址的符号表示,三个属性: 段值SEGMENT:标号所在段的段基址 段内偏移地址OFFSET:标号所在地址和所在段首地址之间的偏移字节数 类型TYPE:指转移指令中标号可转移的距离,也叫距离属性,NEAR(近标号,实现本代码段内转移)、FAR(远标号,段间转移),2018/11/19,11,补充:,变量:放在伪指令前的标识符是变量 标号:放在指令前的标识符是标号,标号后有“:” 都有段地址、偏移地址、类型等属性。 例如: DATA SEGMENT TRY DB 20 DATA ENDS NEXT: LOOP NEXT,2018/11/19,12,4-2、MASM中的表达式,表达式=操作数+运算符。 表达式可出现于源程序的任何地方, 在汇编过程中(而不是程序执行过程中)即可产生确定的值。运算的结果作为语句中的操作数使用。,6类运算符:算术运算符、逻辑运算符、关系运算符、

      6、数值返回运算符、修改属性运算符、其它运算符,2018/11/19,13,算术运算符:+、-、*、/、MOD、SHL、SHR 逻辑运算符:AND、OR、XOR、NOT 关系运算符:EQ、NE、GT、 LT、 GE 、LE 分析运算符:SEG、OFFSET、TYPE、SIZE、LENGTH 、HIGH、LOW 综合运算符:PTR、DS:、THIS、SHORT,2018/11/19,14,一、算术运算符,数值表达式中可使用所有算术运算符 地址表达式仅使用+、-算术运算符 /除法,取商。MOD除法取余数。 例4-2 数组ARRAY定义如下:,ARRAY DB 1,2,3,4,5,6,7,8 TRY DB 20 指令为: MOV AX,30*5 MOV CX,(TRY-ARRAY),汇编时,计算表达式形成的指令为: MOV AX,150 MOV CX,8,+、-、*、/、MOD、SHL、SHR,2018/11/19,15,二、逻辑运算符,逻辑运算符在两个操作数之间按位进行二进制布尔运算,结果产生确定的数值。AND、 OR、 NOT、 XOR 逻辑运算符只能对常数进行运算,运算结果也是常数。 例:

      7、 AND BL, 46H AND 0FH ; 汇编后得到 “ AND BL, 06H ” 的目标码,2018/11/19,16,三、关系运算符,在两个无符号操作数之间进行大小关系比较 EQ(相等)、NE(不等)、LT(小于)、GT(大于)、LE(小于或等于)、GE(大于或等于) 若关系满足则返回全1,否则返回全0。(0FFH0FFFFH0) 两个操作数必须为 数据 或是同一段内的两个存储单元的地址 例: MOV AX, 0A2H NE 02H ; 汇编后得到 “ MOV AX, 0FFFFH ” 的目标码 例4-6 MOV CX,(PORT LT 5)AND 100)OR(PORT GE 5)AND 200),2018/11/19,17,四、数值返回运算符(分析运算符),对单个操作数进行属性分解,分别返回不同属性的值 SEG 取变量或标号所在段的段基址,结果为16位值 OFFSET 取变量或标号的段内偏移量,结果为16位值 TYPE 取变量或标号的类型 LENGTH 取变量重复次数 or 1 只和有无DUP有关 SIZE 取分配给变量的字节个数 SIZE=LENGTH*TYPE,表4-

      8、2 TYPE运算符返回值,2018/11/19,18,例,CSEG SEGMENT BUFF DW 10DUP(1234H),10H,00H COUN DD 12345678H CSEG ENDS,则:SEG BUFF = CSEG ;段基址 OFFSET BUFF = 0 ;偏移量 TYPE BUFF = 2(字) ;类型 LENGTH BUFF = 10 ;DUP次数 SIZE BUFF = 10*2 = 20 ;字节数,SEG COUN = CSEG OFFSET COUN = 24 TYPE COUN = 4(双字) LENGTH COUN = 1 SIZE COUN = 4,2018/11/19,19,修改属性运算符(综合运算符),可以在程序运行过程中,通过“修改属性运算符”来修改变量或标号的属性,包括段属性、偏移地址属性、类型属性等。 有: 段操作符、PTR、THIS、HIGH、LOW、SHORT,2018/11/19,20,段操作符(P36 表2-7) 格式:段前缀:变量或地址表达式 功能:修改变量或表达式到某个段寄存器提供的段基址中 段前缀:CS、ES、DS、SS Eg

      9、4-12:MOV AX,ES:BX,PTR:给已分配的存储单元或标号赋予新的属性。 格式:类型/距离 PTR 变量或标号 功能:将PTR左边的类型属性赋给右边的变量或标号 常与BYTE、WORD、NEAR、FAR等连用 Eg4-13: N1 DB 15H,36H MOV AX,WORD PTR N1,2018/11/19,21,PTR例 MUL BYTE PTRBX ;限定存储器操作数的类型 JMP WORD PTRBX ;段内转移 JMP DWORD PTRBX ;段间转移 CS:IP JMP FAR PTR LO ;段间转移,2018/11/19,22,THIS: 格式:变量/标号 EQU THIS 类型/距离 功能:该变量或标号的段地址和偏移地址与下一个存储单元的地址相同,并具有THIS后的属性 Eg4-45:FIRST EQU THIS BYTE TABLE DW 200DUP(?) EG4-46 :SP1 EQU THIS FAR MOV AX,100,SHORT: 格式:SHORT 标号 功能:限制转移类指令为短转移(-128127) Eg:L1:JMP SHORT L2 L2:MOV AX,0,2018/11/19,23,HIGH、LOW(字节分离运算符) 格式:HIGH/LOW 变量或标号 功能:对于一个数或表达式,分离出高位字节和低位字节 Eg: K1 EQU 0ABCDH K2 EQU 1234H MOV AH, HIGH K1 MOV BL, LOW K2,经过汇编后形成指令: MOV AH,0ABH MOV BL,34H,2018/11/19,24,4-3 8086宏汇编语言常用伪指令,8086宏汇编语言MASM5.0规定的常用伪指令,包括 数据定义语句DB、DW、DD 标号赋值语句:EQU、= 段定义语句SEGMENT、ENDS 段分配语句:ASSUME 过程定义语句:PROC.ENDP 程序开始结束语句:ORG、END、NAME 群定义语句GROUP 结构定义语句:

      《第四章-伪指令及程序设计》由会员龙***分享,可在线阅读,更多相关《第四章-伪指令及程序设计》请在金锄头文库上搜索。

      点击阅读更多内容
    TA的资源
  • 一号教学楼一层地面修缮工程竞争性磋商文件

    一号教学楼一层地面修缮工程竞争性磋商文件

  • 新能源高端设备制造示范项目(一期)施工图设计服务招标文件正文

    新能源高端设备制造示范项目(一期)施工图设计服务招标文件正文

  • 新丰镇农村公路大中修-新北线(一期南段)招标文件正文

    新丰镇农村公路大中修-新北线(一期南段)招标文件正文

  • 长信科技:长信科技拟发行股份及支付现金购买资产涉及的芜湖长信新型显示器件有限公司股东全部权益价值项目资产评估报告

    长信科技:长信科技拟发行股份及支付现金购买资产涉及的芜湖长信新型显示器件有限公司股东全部权益价值项目资产评估报告

  • 山东科技大学城市轨道交通调度系统考核装置采购项目竞争性磋商

    山东科技大学城市轨道交通调度系统考核装置采购项目竞争性磋商

  • 山东墨龙:寿光宝隆石油器材有限公司评估报告

    山东墨龙:寿光宝隆石油器材有限公司评估报告

  • 浙商中拓:三维企业评估报告

    浙商中拓:三维企业评估报告

  • 大丰区乡村振兴(农村公路大中修工程)——三裕线招标文件招标文件正文

    大丰区乡村振兴(农村公路大中修工程)——三裕线招标文件招标文件正文

  • 恒辉安防:最近三年的财务报告及其审计报告以及最近一期的财务报告

    恒辉安防:最近三年的财务报告及其审计报告以及最近一期的财务报告

  • 浙商中拓:三维企业审计报告

    浙商中拓:三维企业审计报告

  • 唯万密封:上海唯万密封科技股份有限公司拟现金购买上海嘉诺密封技术有限公司股权所涉及的上海嘉诺密封技术有限公司股东全部权益价值资产评估报告

    唯万密封:上海唯万密封科技股份有限公司拟现金购买上海嘉诺密封技术有限公司股权所涉及的上海嘉诺密封技术有限公司股东全部权益价值资产评估报告

  • 顺控发展:佛山市顺合环保有限公司模拟审计报告

    顺控发展:佛山市顺合环保有限公司模拟审计报告

  • 唯万密封:上海嘉诺密封技术有限公司审计报告

    唯万密封:上海嘉诺密封技术有限公司审计报告

  • 琏升科技:眉山琏升光伏科技有限公司2023年1-7月审计报告

    琏升科技:眉山琏升光伏科技有限公司2023年1-7月审计报告

  • 天娱数科:山西聚为科技有限公司审计报告

    天娱数科:山西聚为科技有限公司审计报告

  • 顺威股份:江苏骏伟精密部件科技股份有限公司模拟审计报告

    顺威股份:江苏骏伟精密部件科技股份有限公司模拟审计报告

  • 山东墨龙:威海市宝隆石油专材有限公司评估报告

    山东墨龙:威海市宝隆石油专材有限公司评估报告

  • 顺威股份:广州顺威新能源汽车有限公司拟股权收购涉及江苏骏伟精密部件科技股份有限公司模拟股东全部权益价值资产评估报告

    顺威股份:广州顺威新能源汽车有限公司拟股权收购涉及江苏骏伟精密部件科技股份有限公司模拟股东全部权益价值资产评估报告

  • 盈峰环境:佛山市顺合环保有限公司模拟审计报告

    盈峰环境:佛山市顺合环保有限公司模拟审计报告

  • 领益智造:最近三年的财务报告及其审计报告以及最近一期的财务报告

    领益智造:最近三年的财务报告及其审计报告以及最近一期的财务报告

  • 点击查看更多
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党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.