例11 64位加法,有两个64位数相加,和放在BUFFER缓 冲区中(不考虑进位)。参数放在存储单元中。 程序如下: DATA SEGMENT VAL1 DD 01H VAL2 DD 02H,65AB0788H BUFFER DD ?,? DATA ENDS STACK SEGMENT DB 100DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA, SS:STACK BEGIN: MOV AX,DATA MOV DS,AX LEA BX,SQTAB MOV AL,SUR ;AL=X XLAT SQTAB MOV DIS,AL MOV AH,4CH INT 21H CODE ENDS END BEGIN 利用系统功能调用 INT 21H的4CH号子功能返回DOS 3.3.3 分支结构程序设计 分支结构程序的基本思想是根据某些条件和状态来控制程序下一步的走向。首先执行能影响状态的指令,如算术逻辑运算指令、移位指令或位操作指令,然后用条件转移类指令对各种状态标志进行判断,进而转移形成分支。 设计分支结构程序一般有两种方法: ? 比较/测试分支结构法; ? 跳转表分支结构法; 1. 比较/测试分支结构法 采用比较指令CMP和测试指令TEST,产生相应的状态标志,选择适当的条件转移指令,实现不同情况的分支转移。一条转移指令产生两路分支,n 条转移指令可产生 n + 1条分支。 = 0? BX= 0 BX= 1 BX= –1 Y Y 0? 例1 实现符号函数。 1 X 0 Y= 0 X = 0 –1 X 0 根据上述要求的程序段为: START: MOV AX,BUFFER;取变量X OR AX,AX ;产生状态标志 JE ZERO ;X = 0 则转移 JNS PLUS ;X 为正 则转移 MOV BX,0FFFFH;BX= – 1 JMP CONT1 ;转向出口 ZERO: MOV BX,0 JMP CONT1 PLUS: MOV BX,1 CONT1: …… 2. 跳转表分支结构法 当分支数较多时,将各个分支的入口地址组成跳转表,再根据某个变量的不同取值情况,从表中取出相应的入口地址,实现各分支转移。 例2: 根据AL中各位被置位情况,控制转移到8个子程序P1~P8其中之一。 条件1成立? P1 P2 Pn+1 Y Y 条件2成立? 条件n成立? ┇ Y Pn 子程序的P8入口地址 SR7 子程序的P7入口地址 SR6 … … … … … … 子程序的P3入口地址 SR2 子程序的P2入口地址 SR1 子程序的P1入口地址 SR0 子程序分支转移跳转表 STACK SEGMENT DB 100 DUP(?) STACK ENDS DATA SEGMENT BASE DW SR0,SR1, SR2,SR3,SR4, SR5,SR6,SR7 VALX DB ? DATA ENDS 解:具体程序如下: CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK BEGIN: PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOV CX,8 LEA BX,BASE IN AL,PORT GETBIT:RCR AL,1 JC GETAD INC BX INC BX LOOP GETBIT RET GETAD:JMP WORD PTR[BX] CODE ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK BEGIN: MOV AX,DATA MOV DS,
您可能关注的文档
最近下载
- 广东省深圳市深圳实验学校等校联考2024-2025学年九年级下学期开学考试语文试题(含答案).docx VIP
- 急性心梗转运流程图解.pptx
- 2025年房地产经纪人房地产市场特点综合案例分析专题试卷及解析.pdf VIP
- 党员领导干部2025年度民主生活会对照检查材料范文.docx VIP
- 2025年演出经纪人保护未成年人艺人的特殊义务与权利专题试卷及解析.pdf VIP
- ALINCO DR-635中文操作手册.pdf
- 2025年AWS认证Fargate网络隔离与安全组精细化配置专题试卷及解析.pdf VIP
- 2025年房地产经纪人市场比较法与其他估价方法(收益法、成本法)的混合应用专题试卷及解析.pdf VIP
- 2025年项目管理专业进度绩效指数在应对“黑天鹅”事件中的弹性分析专题试卷及解析.pdf VIP
- 【高考数学】2025年高考数学二级结论篇(核心知识背记手册).pdf
原创力文档

文档评论(0)