- 1、本文档共25页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 微型计算机的程序设计
第6章 微型计算机的程序设计 6.1 程序设计步骤 6.2 简单程序 6.3 分支程序 6.4 循环程序 6.5 子程序 6.6 查表程序 6.1 程序设计步骤 汇编语言程序设计的步骤: 分析问题,全面理解问题。 建立数学模型,确定算法。 绘制程序流程图。 内存空间分配:工作区尽可能设在CPU的内部寄存器中。 编制程序和静态检查 程序调试实验 6.2 简单程序 程序执行方式为“从头到尾”逐条执行指令语句,直到程序结束。 例6.1: 用数学运算命令,对数据段中两个16位数做加法运算: 3281H + 2797H 。这两个数从地址10050H开始连续存放,低位在小地址一端,结果放在这两个数之后。 1.分析题目:可用16位寄存器进行运算,一次完成。 2.确定方法:采用加法指令实现两个数相加,采用传送指令进行存储。 6.2 简单程序 3. 程序流程图: 4. 内存空间分配: 6.2 简单程序 5. 编制的程序如下: MOV AX, 1000H MOV DS, AX ; DS=1000H MOV SI, 0050H ;被加数地址 MOV DI, 0052H ;加数地址 MOV BX, 0054H ;和的地址 CLC ;清CF XOR AX, AX ;清AX MOV AX, [SI] ;取被加数到AX ADD AX, [DI] ;相加运算,AX ? AX + [DI] MOV [BX], AX ;存一个字到[BX] HLT ;暂停 6.3 分支程序 利用条件转移指令,根据条件是否满足,来改变程序执行的顺序。 IF…THEN…结构 6.3 分支程序 例6.3:求AX累加器和BX寄存器中两个无符号数之差的绝对值,结果放在内存数据段(2800H)单元中。 1. 分析题目:应该先决定哪一个值较大,然后再用大数减去小数,得到绝对值。 2. 程序流程图: 6.3 分支程序 3. 编制的程序如下: CLC ;清CF SUB AX, BX ;AX ? (AX -BX) JC AA ;CF=1转AA去执行 MOV DI, 2800H ;结果指针 MOV [DI], AX ;结果送到2800H和2801H单元 HLT ;暂停 AA: SUB BX, AX ;BX ? (BX -AX) MOV DI, 2800H MOV [DI], BX HLT 6.3 分支程序 例题6.3程序可编制如下: MOV DX, 0000H MOV DS, DX ;设置段地址 MOV DI, 2800H ;结果数据存放地址 CMP AX, BX ;AX-BX,结果影响标志位 JC AA ;若产生借位,则CF=1转AA SUB AX, BX MOV [DI], AX ;结果送到2800H和2801H单元 HLT ;暂停 AA: SUB BX, AX ;BX ? (BX -AX) MOV [DI], BX HLT 6.3 分支程序 例:比较AL、BL、CL中带符号数的大小,将最小数放在AL中。 CMP AL, BL ;AL和BL比较 JNG BBB ;若AL≤BL,则转BBB XCHG AL, BL ;若AL>BL,则交换 BBB: CMP AL, CL ;AL和CL比较 JNG CCC ;若AL≤CL,则转CCC XCHG AL, CL ;若AL>CL,则交换 CCC: HLT 6.4 循环程序 循
文档评论(0)