




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
汇编语言程序设计 汇编语言格式与伪指令 汇编语言源程序由以下两种指令构成汇编语句 指令语句 伪指令 指示性语句 汇编语句的格式 标号 操作码操作数 注释3 伪指令 控制汇编用的特殊指令 这些指令不属于指令系统 不产生机器代码 常用的伪指令 ORG定位目的程序的起始地址 格式 ORG表达式表达式必须为16位地址值 如 ORG0000HEND汇编语言程序结束伪指令 一定放在程序末尾 常用的伪指令 EQU赋值伪指令 格式 字符名称EQU数值或汇编符号例 AAEQU30HK1EQU40HMOVA AA 30H AMOVA K1 40H A 常用的伪指令 DB从指定单元开始定义 存储 若干个字节的数据或ASCII码字符 常用于定义数据常数表 格式 DB字节常数或ASCII字符例 ORG1000HDB34H 0DEH A B DB0AH 0BH 20 常用的伪指令 DW从指定单元开始定义 存储 若干个字的数据或ASCII码字符 格式 DW字常数或ASCII字符例 ORG2000HDW1234H B DW0AH 20 常用的伪指令 BIT位地址符号指令 把位地址赋于规定的字符名称 格式 字符名称BIT位地址例 ABCBITP1 1QQBITP3 2 汇编语言程序设计应用 在进行应用汇编程序设计时 首先要确定算法 算法的优劣很大程度上决定了程序的效率 另外还要尽可能画出程序框图 以便于分析程序流程 定点数运算子程序 定点数 小数点固定的数 可以把小数点固定在数值的最高位之前 对于有符号的数 小数点应在符号位与最高数值位之间 即 符号位 数值部分也可以把小数点固定在最低数值位后面 即 符号位数值部分 定点数表示方式 1 原码表示法 符号位为0表示正数 符号位为1表示负数 如 二进制数00110100表示十进制数 52二进制数10110100表示十进制数 52 2 补码表示法 正数的补码表示与原码相同 即最高位为0 其余位为数值位 负数用补码表示时 最高位为1 数值位要按位取反后再在最低位加1 才是该负数的数值 例如 十进制数 51的二进制补码为00110011十进制数 51的二进制补码为11001101 例 双字节数取补子程序 将 R4R5 中的双字节数取补 结果送R4R5 CMPT MOVA R5CPLAADDA 1MOVR5 AMOVA R4CPLAADDCA 0MOVR4 ARET 例 双字节原码数左移一位子程序 将 R2R3 左移一位 结果送R2R3 不改变符号位 不考虑溢出 DRL1 MOVA R3CLRCRLCAMOVR3 AMOVA R2RLCAMOVACC 7 C 恢复符号位MOVR2 ARET 例 双字节原码右移一位子程序 将 R2R3 右移一位 结果送R2R3 不改变符号位 DRR1 MOVA R2MOVC ACC 7 保护符号位CLRACC 7 移入0RRCAMOVR2 AMOVA R3RRCAMOVR3 ARET 例 双字节补码右移一位子程序 将 R2R3 右移一位 结果送R2R3 不改变符号位 CRR1 MOVA R2MOVC ACC 7 保护符号位RRCA 移入符号位MOVR2 AMOVA R3RRCAMOVR3 ARET 例 双字节无符号数加法子程序 将 R2R3 和 R6R7 两个无符号数相加 结果送R4R5 NADD MOVA R3ADDA R7MOVR5 AMOVA R2ADDCA R6MOVR4 ARET 例 双字节无符号数减法子程序 将 R2R3 和 R6R7 两个双字节数相减 结果送R4R5 NSUB1 MOVA R3CLRCSUBBA R7MOVR5 AMOVA R2SUBBA R6MOVR4 ARET 例 双字节原码加减运算子程序 R2R3 和 R6R7 为两个原码表示的数 最高位为符号位 求 R2R3 R6R7 结果送R4R5 程序中DADD为原码加法子程序入口 DSUB为原码减法子程序入口 出口时CY 1发生溢出 CY 0为正常 DSUB MOVA R6 减法入口CPLACC 7 取反符号位MOVR6 ADADD MOVA R2 加法入口MOVC ACC 7MOVF0 C 保存被加数符号位XRLA R6MOVC ACC 7 C 1 异号 C 0 同号MOVA R2CLRACC 7 清0被加数符号MOVR2 AMOVA R6CLRACC 7 清0加数符号MOVR6 A JCDAB2ACALLNADD 同号执行加法MOVA R4JBACC 7 DABEDAB1 MOVC F0 恢复结果的符号MOVACC 7 CMOVR4 ARETDABE SETBCRET 溢出DAB2 ACALLNSUB1 异号执行减法MOVA R4JNBACC 7 DAB1ACALLCMPT 不够减 取补CPLF0 符号位取反SJMPDAB1 例 无符号二进制乘法程序 将 R2R3 和 R6R7 两个双字节无符号数相乘 结果送R4R5R6R7 NMUL MOVR4 0MOVR5 0MOVR0 16 16位二进制数CLRCNMLP MOVA R4 右移一位RRCAMOVR4 AMOVA R5RRCAMOVR5 AMOVA R6RRCAMOVR6 AMOVA R7RRCA MOVR7 AJNCNMLN C为移出的乘数最低位 若为0 不执行加法MOVA R5 执行加法ADDA R3MOVR5 AMOVA R4ADDCA R2MOVR4 ANMLN DJNZR0 NMLP 循环16次MOVA R4 最后将结果再右移一位RRCAMOVR4 AMOVA R5RRCAMOVR5 AMOVA R6RRCAMOVR6 AMOVA R7RRCAMOVR7 ARET 快速乘法 例 无符号双字节快速乘法 将 R2R3 和 R6R7 两个双字节无符号数相乘 结果送R4R5R6R7 QMUL MOVA R3MOVB R7MULAB R3 R7XCHA R7 R7 R3 R7 LMOVR5 B R5 R3 R7 HMOVB R2MULAB R2 R7ADDA R5MOVR4 ACLRAADDCA BMOVR5 A R5 R2 R7 HMOVA R6MOVB R3MUL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高校教师资格证之《高等教育法规》预测试题附答案详解(预热题)
- 2025年银行岗位试题预测试卷及完整答案详解(全优)
- 2025年心血管内科实验诊断与临床应用试题答案及解析
- 农发行德州市宁津县2025秋招无领导小组面试案例库
- 2025年银行岗位题库(考点精练)附答案详解
- 【论文-教育】数学建模在中学物理问题解决中的迁移应用研究
- 检测线考试题及答案
- 2025年执业药师能力提升B卷题库附完整答案详解(夺冠)
- 家电维修细则及维护指南
- 冲突解决方案制度设计
- 妊娠合并贫血课件
- 手术室感染监测课件
- 抖音:短视频与直播运营全套教学课件
- 拍卖行业发展趋势PPT
- 【监理公司】市政工程(道路及排水)质量评估报告范本(WORD档)
- 中国特色社会主义思想概论 课件 第四章 坚持以人民为中心
- 退役士兵求职简历模板+自荐书
- 湘菜湖南美食文化介绍PPT
- 外科学外科休克PPT
- 浙人美2011版四年级美术上册《水资源》教案及教学反思
- 全桥LLC自动计算表格
评论
0/150
提交评论