微型计算机10053拆装,微型计算机的程序设计概要1.ppt
微型计算机的程序设计概要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≤M<20.如果M≥20H,则送0FFH给外设73H;如果M<10,则送00H给外设73H; 如果10≤M<20,则送88H给外设73H. 分析:根据题意,我们可以看出这是一个需要两次判断M大小的问题。我们可以先判M是否大于10,再判M是否大于20。(2) 根据解决问题的思路,我们先画出程序流程图,如下图所示。从图6中程序流程图来看,两个分支都要“回归”原程序。(3) 编制的程序如下:
总结
以上是生活随笔为你收集整理的微型计算机10053拆装,微型计算机的程序设计概要1.ppt的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 编程方法学12:枚举
- 下一篇: 编程方法学13:字符串处理