- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编语言程序设计Assembly Language Programming 1. 汇编语言程序设计基本步骤 好的程序 速度快;资源消耗少;结构化的;易维护的。 步骤 分析问题; 确定算法; 绘制流程图,模块图; 确定数据结构;进行数据段设计; 编写程序; 调试; 程序结构 2. 顺序程序设计 1. 从键盘读入一个2位的十进制的正整数,存入BL中。 2. 将BL中的数以十六进制的形式显示到屏幕。 3. P64 10.(6) x为8位带符号数,计算10*x + x/4 – 100, 结果送入Result单元。 3. 分支程序设计 分支程序 使用条件转移指令来完成分支。一个可以产生两分支。JMP不会产生分支。 分支程序基本结构 3.1 双分支结构 JX Next JMP Done Next: ; Handle A Done: ; Switch has done 例子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]; 3.2 多分支结构 多分支程序处理方法: 1. 多条件转移指令实现(if … else if …else if …) 2. 地址表 (Switch … Case…) 3. 转移表 (Switch … Case…) 多分支结构 switch(表达式) { case:常量1:do sth1;break; …… case:常量n:do sthn;break; } 地址表(Address Table) 原理 通过某种映射变换,能将待处理的分支条件映射为自然数序列1,2,…,n 把各个分支程序段的入口地址依次存放在数据段的一张表中。 查表,取出分支地址,进行转移。 方法要点:映射?表序号?入口地址?分支程序段 地址表实现 首先,设计分支条件,使第n个分支映射为数n 然后, 在存储器的数据段中定义一张入口地址表 AddressTable DW s1,s2,s3,…… 最后,根据条件转入n分支。 n号分支地址= [入口地址表首地址 + n×2] JMP AddressTable[2*n] 转移表(JMP Table) 原理 通过某种映射变换,能将待处理的分支条件映射为自然数序列1,2,…,n 把转移到各分支程序段的转移指令依次存放在代码段的一张表(转移表)中。 查表,取出目标转移指令的地址,转移到该指令进行执行。 方法要点:映射?表序号?转移指令?分支程序段 转移表实现 首先,设计分支条件,使第n个分支映射为数n 然后,我们在代码段中定义一张入口地址表 JMPTABLE: Jmp near ptr L1 Jmp near ptr L2 …… 最后,根据条件转入n分支。 表项地址=表首地址 + 表项编号×3 JMP offset JMPTABLE + 3*n 强迫远跳转ORG $+80H 地址表 例子1 例 2 在内存Score缓冲区中存放有100个学生的成绩数据,为无符号字节数。分别统计各个分数段的人数,分别存储在NOTPASSED 、PASSED、GOOD 、BETTER 、BEST。 例 3(地址表) 根据输入的数字1-7,分别显示相应的英文星期名。 例 3(转移表) JMPTABLE: JMP NEAR PTR L1 JMP NEAR PTR L2 JMP NEAR PTR L3 JMP NEAR PTR L4 4 循环程序设计 循环程序的一般结构 初始化 建立循环计数器,例如: MOV CX, n 初始化地址指针,例如: LEA BX, Buffer MOV BX, offset Buffer 建立下标计数器,例如: MOV SI, 0 清空或设置某些寄存器,例如: MOV AX, 0 循环体部分的编写 触发下一次循环的代码 对地址指针或者下标计数器进行加 (注意步长) 例如: INC SI;ADD BX,2 循环计数器减 例如: LOOP AGAIN 循环退出的确定 正常退出 计数结束 中途退出 条件退出 循环程序的一般形式 一重循环 While——DO—— DO——While—— FOR 多重循环 二重、三重循环 循环+(多)分支 开关控制或者逻辑尺
您可能关注的文档
最近下载
- 第五章热模锻压力机.ppt VIP
- 拼搏初三,决胜中考 开学第一课主题班会课件.pptx VIP
- 20190821合法合规催收承诺书.docx VIP
- 抗日战争胜利80周年阅兵.pptx VIP
- (正式版)D-L∕ T 620-1997 交流电气装置的过电压保护和绝缘配合.docx VIP
- 《显示技术原理》课件:液晶基础知识详解.ppt VIP
- 汉字练习字帖(可编辑打印).docx VIP
- 心衰患者的容量管理.pptx VIP
- 2025湖北潜江市面向退役军人专项招聘教师2人笔试参考题库附答案解析.docx VIP
- 2025广西现代物流集团第三次公开招聘109人笔试备考题库及答案解析.docx VIP
文档评论(0)