【例4-1】对下段程序进行手工汇编。 地址 指令代码 源程序 ORG 2000H 2000H D291 START: SErb P1. 2002H 753003 DL: mov 30H, 03H 2005H 7531Fo D LO: Mov 31H, # OFOH 2008H D5 31 rell D1:D小N31H,DLl 200BH D5 30 rel2 dJnZ 30H, DLO 200EH B291 CP P1.1 2010H 空空2 AJMP DI
【例4-1】对下段程序进行手工汇编
四.程序设计的基本方法 编写程序要求 不仅要完成规定的功能任务,而且还要求 执行速度快、占用内存少、条理清晰、 阅读方便、便于移植、巧妙而实用。 般应按以下几个步骤进行 (1)分析问题,确定算法或解题思路 (2)画流程图 (3)编写源程序 (4)汇编和调试
⑷ 汇编和调试 四. 程序设计的基本方法 编写程序要求: 不仅要完成规定的功能任务,而且还要求: 执行速度快、占用内存少、条理清晰、 阅读方便、便于移植、巧妙而实用。 一般应按以下几个步骤进行: ⑴ 分析问题,确定算法或解题思路 ⑵ 画流程图 ⑶ 编写源程序
流程图符号和说明 符号 名称 袤示的功能 起止框 程序的开始或结束 外理框 各种处理操作 判断框 条件转移操作 输入输出框 输入输出操作 流程线 描述程序的流向 引入引出连接线流程的连接
流程图符号和说明:
第二节汇编语言程序设计举例 顺序程序 顺序程序是指按顺序依次执行的程序,也 称为简单程序或直线程序。 顺序程序结构虽然比较简单,但也能完成 定的功能任务,是构成复杂程序的基础
顺序程序是指按顺序依次执行的程序,也 称为简单程序或直线程序。 顺序程序结构虽然比较简单,但也能完成 一定的功能任务,是构成复杂程序的基础。 第二节 汇编语言程序设计举例 一 . 顺序程序
【例4-2】已知16位二进制负数存放在R1RO中, 试求其补码,并将结果存在R3R2中。 解:二进制负数的求补方法可归结为“求反加1”,符号 位不变。利用CPL指令实现求反;加1时,则应低8位先加1 高8位再加上低位的进位。注意这里不能用IⅠNC指令,因为 INC指令不影响标志位。 程序如下: CONT MOV A RO ;读低8位 CPL A ;取反 ADD A,#1 ;加1 MOV R2. A ;存低8位 MOV A. R1 ;读高8位 CPL A ;取反 ADCA,#80H;加进位及符号位 MOV R3. A ;存高8位 RET
CONT: MOV A,R0 ;读低8位 CPL A ;取反 ADD A,#1 ;加1 MOV R2,A ;存低8位 MOV A,R1 ;读高8位 CPL A ;取反 ADDC A,#80H ;加进位及符号位 MOV R3,A ;存高8位 RET ; 【例4-2】 已知16位二进制负数存放在R1R0中, 试求其补码,并将结果存在R3R2中。 解:二进制负数的求补方法可归结为“求反加1” ,符号 位不变。利用CPL指令实现求反;加1时,则应低8位先加1, 高8位再加上低位的进位。注意这里不能用INC指令,因为 INC指令不影响标志位。 程序如下: