微型计算机的程序设计概要1.ppt

  1. 1、本文档共55页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微型计算机的程序设计概要1

第六章 微型计算机的程序设计 顺序结构程序 分支结构程序 循环结构程序 子程序结构 第六章 小结、思考题 重点: 程序设计方法 顺序结构程序 分支结构程序 循环结构程序 子程序结构 6.1 程序设计步骤 1.分析问题 2.建立数学模型 3.确定算法 4.绘制程序流程图 5.内存分配 6.编制程序 7.程序调试 6-2 简单程序(顺序结构程序) 例6-1:用数据运算指令,对两个16位数做加法运算。这两个数从地址10050H开始连续存放,低位在小地址的一端,结果放在这两个数之后。 分析:(1)两个16位数相加,在用加法指令时,需要考虑低8位和低8位相加后产生的进位问题。 (2)可用AX直接做字操作(16位),但在低位加操作后,会影响进位位CF,所以要用进位加法指令ADC 内存分配图 内存地址 内容 内存地址 内容 10050H 被加数低8位 10053H 加数高8位 10051H 被加数高8位 10054H 和的低8位 10052H 加数低8位 10055H 和的高8位 程序段为: MOV AX, 1000H MOV DS, AX ;注意,不能将立即数直接给DS MOV SI, 50H MOV DI, 52H MOV BX, 54H CLC XOR AX, AX MOV AX, [SI] ADC AX, [SI] MOV [BX], AX HLT ;暂停 例6.2 将内存(10050)单元的内容拆成两段,每段4位,并将它们分别 存入内存(10051)和(10052)单元。即(10050)单元中的低4位放入(10051)单元中的低4位, 而(10050)单元中的高4位放入(10052)单元中的低4位。 程序段如下:(见书本p140) MOV AX, 1000H MOV DS, AX ;给段寄存器DS赋值 MOV SI, 50H MOV AL,[SI] ;把物理地址为10000H+0050H=10050H ; 中的存储内容给AL AND AL, 0FH ;把AL中的前4位清0,取得低4位值 MOV [SI+1], AL;把得到的低4位放到(10051H)单元 MOV AL, [SI] ;再取出需拆字节放到AL中 MOV CL, 4 SHR AL, CL ;逻辑右移4次,前4位补0; MOV [SI+2], AL ;放入(10052)单元 6-3、分枝结构程序 例6.3 求AX累加器和BX寄存器中两个无符号数之差的绝对值,结果放在内存(2800)单元中。 分析:不知AX与BX中数的大小,故需先判断谁大,然后用大的减小的才可求得绝对值, 其流程图如图6-5 相应程序段如下 (p141) CLC SUB AX,BX JC AA ;进位位为1,就转移到AA MOV DI, 2800H MOV [DI], AX HLT AA: SUB BX, AX MOV DI, 2800H MOV [DI], BX HLT 例6.4 从外设71号中取一个数M,判断其值是否在10和20之间,即10≤M20. 如果M≥20H,则送0FFH给外设73H; 如果M10,则送00H给外设73H; 如果10≤M20,则送88H给外设73H. 分析:根据题意,我们可以看出这是一个需要两次判断M大小的问题。我们可以先判M是否大于10,再判M是否大于20。 (2) 根据解决问题的思路,我们先画出程序流程图,如下图所示。从图6中程序流程图来看,两个分支都要“回归”原程序。 (3) 编制的程序如下: 相关

文档评论(0)

676200 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档