




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十章机器语言程序设计,结构化程序设计,三种基本结构:顺序,选择和循环,待分解的任务,(a),(b),(c),A,生成条件指令,A,B2,条件分支指令,子任务2,C2,子任务1,D2,(d),A,B3,子任务,D3,J指令,条件分支指令,J指令,生成条件指令,选择,利用一组指令序列生成条件,将某个寄存器设置为零或非零由地址B2中的“条件分支指令”测试该寄存器如果条件为真,PC被设置为地址C2+4,子任务1被执行条件分支指令中的立即数对应于子任务2的指令数目加1后再乘以4如果条件为假,PC:B2+4,子任务2被执行子任务2终止于一个无条件跳转指令,PC被无条件转移到地址D2+4中J指令中的立即数对应了子任务1的指令数目乘以4,循环,利用一组指令序列生成条件,将某个寄存器设置为零或非零由地址B3中的“条件分支指令”测试该寄存器当条件为真时,PC被设置为地址D3+4条件分支指令中的立即数对应于子任务的指令数目加1后再乘以4如果条件为假,PC:B3+4,子任务被执行子任务结束于地址D3中的无条件跳转指令,PC被设置为A问题:J指令中的立即数应为多少?,示例:文档加密,根据键盘输入的数值n(0到9之间的整数),对文档进行加密加密算法:如果文档中的字符ASCII码值大于“126-n”,那么,将该字符减去“94-n”,并替换原来的字符;而其他字符则加上n,进行替换;最后在显示器上显示字符“Y”,表示加密结束。假设文档中的字符ASCII码值在33126范围内。,系统分解过程,分解为由4个子任务组成的顺序结构初始化:得到数值n,将指针指向被检查文档中第一个字符的地址,然后从被检查文档中提取第一个字符。,开始,A,输入一个字符。,扫描文档,进行加密。,结束,在显示器上显示“Y”。,C,D,初始化。,B,分解C,循环结构:只要该文档还有字符需要加密文档结束,标志为EOT(传输结束,ASCII码为00000100),(a),(b),开始,A,输入一个字符。,扫描文档,进行加密。,结束,在显示器上显示“Y”。,C,D,初始化。,B,开始,结束,A,输入一个字符。,初始化:将进行加密任务所需的所有单元放置初值。得到整数值n;设置指向被扫描的文档的第一个单元的指针;获取文档的第一个字符。,B,C,结束?,是,否,C1,检测字符,如果字符大于126-n,则字符减94-n,否则字符加n。并替换。,在显示器上显示结果。,D,分解C1,两个顺序的子任务C2和C3,是,否,检测字符,如果字符大于126-n,则字符减94-n,否则字符加n。,C2,字符替换,获取下一个字符。,C3,C1,结束?(R1?=EOT),结束?(R1?=EOT),结束,D,R1MR3,R3R3+1,MR3R1,R1R1+R4,R1R1-94+R4,R1126-R4?,否,是,是,否,C3,C2,输出,输出准备R4x59,A,B,开始,R4从键盘输入的字符。,R4R4-x30R3x10000000R1MR3,使用选择结构代替C2,调试,与C语言程序类似不同:跟踪的是指令序列的执行,以及每条指令执行后得到的结果跟踪程序从大的子任务开始,当某个子任务执行后得到的结果与预期的结果不同时,下一步就是跟踪构成该子任务的更小的子任务。这个过程逐步进行,直到找出错误出现的原因。,调试操作,与C语言的源水平调试器不同从机器指令集结构水平上,完成一些基本的交互式调试与C语言的源水平调试器类似模拟器也提供了断点、观察点、单步和显示值等功能,包括:在存储器和寄存器中设置值顺序地执行一个程序中的指令能够按照期望停止执行在程序中的任何地方,检查存储器和寄存器中的内容,使用加法指令实现乘法运算,将分别来自于R4和R5的两个正数做乘法运算,1、使用“设置值”命令,在R4中设置10,R5中为3;2、通过单步调试,跟踪程序;3、使用断点跟踪程序。,跟踪结果,更正,把x4000000Cx4000000F存储的指令替换为或删除x40000010x40000013行的指令,将x4000000Cx4000000F行的指令改为:,测试,可以计算所有整数乘法的程序?使用-6和3,4和-12,-5和-7做初始值使用这些测试集存在一个问题:忽略了最重要的初始值0要点:对于一个可以运行的程序,它必须能对所有的值运行好的测试:用那些不寻常的值进行初始化,那是程序员可能没有考虑的值。这些值通常被称为“极端状况”,判断一段连续的存储单元内是否包含一个5,检查从地址x30000000开始存储的10个整数中是否包含5,只要有1个5,就把R1设置为1,如果一个5都没有则使R1为0。,使用如下样本数据:1,2,3,0,5,6,7,8,9,10,运行这个程序,程序结束时R1等于0,找到一个字中的第一个“1”,检查一个存储于x30000000x30000003中的整数,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届贵港市重点中学化学高一上期末预测试题含解析
- 超实 用职位应对:公务员面试题实例详解及模板
- 国际企业原材料管理图文
- 幼儿园大班语言活动《丑小鸭》教案
- 现代小说创作实例分享与点评面试题目
- 眼睑炎症的药物治疗
- 伤口护理业务学习
- 心理健康讲解分享
- 夏季卫生知识普及课件
- 行星齿轮机构讲解
- 温通刮痧技术操作流程图及考核标准
- 19S406建筑排水管道安装-塑料管道
- 变压器运行维护手册
- GA/T 1161-2014法庭科学DNA检验鉴定文书内容及格式
- 云南专升本会计试题
- 民间信仰活动场所信息采集表
- 2023年版义务教育音乐课程标准(标准版)
- 神华包头煤化工分公司2013年夏季水平衡测试报告
- 有效咳嗽技术操作评分标准
- GB∕T 36935-2018 鞋类 鞋号对照表
- 教练技术一阶段讲义
评论
0/150
提交评论