




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
汇编语言程序设计AssemblyLanguageProgramming 第四章汇编语言程序设计 1 汇编语言程序设计基本步骤 好的程序速度快 资源消耗少 结构化的 易维护的 步骤分析问题 确定算法 绘制流程图 模块图 确定数据结构 进行数据段设计 编写程序 调试 程序结构 顺序结构循环结构分支结构子程序结构复合结构 多种程序结构的组合 2 顺序程序设计 1 从键盘读入一个2位的十进制的正整数 存入BL中 2 将BL中的数以十六进制的形式显示到屏幕 3 P6410 6 x为8位带符号数 计算10 x x 4 100 结果送入Result单元 3 分支程序设计 分支程序使用条件转移指令来完成分支 一个可以产生两分支 JMP不会产生分支 分支程序基本结构 3 1双分支结构 JXNextJMPDoneNext HandleADone Switchhasdone JXNext HandleBJMPDoneNext HandleADone Switchhasdone JNXNext HandleANext Switchhasdone 例子1 取NUMBER字单元中数的绝对值送入AX 例子2 试根据SIGN中的信息进行计算 若 SIGN 0 则计算X1 X2 Result 若 SIGN 0 则计算X1 X2 Result 例子3 P111 例5 4 1 将Num与Num 1 比较 小的放在Num 1 大的放在AL 2 将AL与Num 2 比较 小的放在Num 2 大的放在Num 3 将Num 1 和Num 2 比较 小的放在Num 2 大的放在Num 1 moval Numcmpal Num 1 jaeskip1movdl almoval Num 1 movNum 1 alSkip1 做第二步 3 2多分支结构 多分支程序处理方法 1 多条件转移指令实现 if elseif elseif 2 地址表 Switch Case 3 转移表 Switch Case 多分支结构 switch 表达式 case 常量1 dosth1 break case 常量n dosthn break 地址表 AddressTable 原理通过某种映射变换 能将待处理的分支条件映射为自然数序列1 2 n把各个分支程序段的入口地址依次存放在数据段的一张表中 查表 取出分支地址 进行转移 方法要点 映射 表序号 入口地址 分支程序段 地址表实现 首先 设计分支条件 使第n个分支映射为数n然后 在存储器的数据段中定义一张入口地址表AddressTableDWs1 s2 s3 最后 根据条件转入n分支 n号分支地址 入口地址表首地址 n 2 JMPAddressTable 2 n 转移表 JMPTable 原理通过某种映射变换 能将待处理的分支条件映射为自然数序列1 2 n把转移到各分支程序段的转移指令依次存放在代码段的一张表 转移表 中 查表 取出目标转移指令的地址 转移到该指令进行执行 方法要点 映射 表序号 转移指令 分支程序段 转移表实现 首先 设计分支条件 使第n个分支映射为数n然后 我们在代码段中定义一张入口地址表JMPTABLE JmpnearptrL1JmpnearptrL2 最后 根据条件转入n分支 表项地址 表首地址 表项编号 3JMPoffsetJMPTABLE 3 n强迫远跳转ORG 80H 地址表 L1 L2 Ln L1 Ln 转移表 例子1 例2 在内存Score缓冲区中存放有100个学生的成绩数据 为无符号字节数 分别统计各个分数段的人数 分别存储在NOTPASSED PASSED GOOD BETTER BEST CMPSCORE BX 90JBNEXTINCBEST if 90 Best JMPDONENEXT CMPSCORE BX 80 Ifgothere must 80 BetterJMPDONE 例3 地址表 根据输入的数字1 7 分别显示相应的英文星期名 DatasegmentADDRTABLEDWL1 L2 L3 L4 S1DB MONDAY S2DB TUESDAY S3DB WEDNESDAY S4DB THURSDAY Dataends MOVAH 1INT21HSUBAL 31HSHLAL 1MOVAH 0MOVBX AXJMPADDRTABLE BX L1 LEADX S1 JMPTABLE JMPNEARPTRL1JMPNEARPTRL2JMPNEARPTRL3JMPNEARPTRL4 MOVAH 1INT21HSUBAL 31HMOVBL ALSHLAL 1ADDBL ALMOVBH 0LEASI JMPTABLEADDSI BXJMPSI 例3 转移表 循环程序的一般结构初始化建立循环计数器 例如 MOVCX n初始化地址指针 例如 LEABX BufferMOVBX offsetBuffer建立下标计数器 例如 MOVSI 0清空或设置某些寄存器 例如 MOVAX 0 4循环程序设计 循环体部分的编写触发下一次循环的代码对地址指针或者下标计数器进行加 注意步长 例如 INCSI ADDBX 2循环计数器减例如 LOOPAGAIN循环退出的确定正常退出计数结束中途退出条件退出 循环程序的一般形式 一重循环While DO DO While 多重循环二重 三重循环循环 多分支开关控制或者逻辑尺控制 当每次循环所执行的操作具有规律性 使用开关控制 无规律 用逻辑尺方法 所谓逻辑尺 就是一个位串 用一位或者多位来控制每次循环所执行的操作 当控制位是一位时 可通过JC命令实现分支 当控制位是多位时 与地址表或者转移表结合进行转移 例p125 0000001110010100 设编码后的逻辑尺为LOGICRULE 控制位占用n个bit ADDRTABLE为这些条件要转入的地址表 那么逻辑尺的主要代码为 MOVCL nROLLOGICRULE CLMOVBX LOGICRULEANDBX 2n 1SHLBX 1JMPADDRTABLE BX 例1 设数据段中有两个有符号数字节数组A和B 编程计算 例2 在内存Score缓冲区中存放有100个学生的成绩数据 为无符号字节数 设计程序完成如下功能 根据用户输入的一个2位十进制数 作为查找对象 在该数组中查找 若找到则显示 Y 若没找到则显示 N 例3把BX中的二进制数以十六进制的形式显示在屏幕上 BX movch 4movcl 4rotate rolbx clmoval blandal 0fhcmpal 0ahjlnextaddal 37h A F jmpdonenext addal 30h 0 9 done movdl almovah 2int21hdecchjnzrotate 作业 将一个字变量X用二进制的形式显示在屏幕上 例4 P131 数据段中Score缓冲区中有5个学生的成绩 字节型 将各自的名次算出填充到Rank缓冲区中 MOVCH 5MOVCL 5MOVSI 0MOVDI 0AGAIN MOVAL SCORE SI MOVDI 0MOVCH 5GOON CMPAL SCORE DI JAENEXTINCRANK SI NEXT INCDIDECCHJNZGOONINCSIDECCLJNZAGAIN xdw array headdw3 5 15 23 37 49 52 65 78 99array enddw105ndw32movax nmovarray head 2 0ffffhmovsi 0compare cmparray end si axjleinsertmovbx array end si movarray end si 2 bxsubsi 2jmpshortcompareinsert movarray end si 2 ax 例5将正数n插入
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第3课 太平天国运动 课件 部编版历史八年级上册
- 2025年物流工程师面试宝典高级模拟题集及答案详解
- 田家四季歌课件
- 倒立教学如何导入课件中
- 减脂舞教学课件
- 书法日子旁教学课件
- 《家族的学堂》教学课件
- 湖北省荆州市2024-2025学年高一下学期7月期末化学试题(含答案)
- 第一学期期中学情评估(含答案)2025-2026学年湘教版八年级地理上册
- 新解读《GB-T 223.54-2022钢铁及合金 镍含量的测定 火焰原子吸收光谱法》
- 号线项目tcms便携式测试单元ptu软件使用说明
- 艺术课程标准(2022年版)
- 癫痫所致精神障碍
- 卫生部手术分级目录(2023年1月份修订)
- 电荷及其守恒定律、库仑定律巩固练习
- YY 0666-2008针尖锋利度和强度试验方法
- GB/T 6663.1-2007直热式负温度系数热敏电阻器第1部分:总规范
- 小沈阳《四大才子》欢乐喜剧人台词
- 全套课件-水利工程管理信息技术
- 缝纫机线迹图示教学课件
- 2022年衡阳市南岳区社区工作者招聘笔试题库及答案解析
评论
0/150
提交评论