国防《微机原理与接口技术》教学资料包 教学课件 第4章.pptVIP

  • 0
  • 0
  • 约1.43万字
  • 约 54页
  • 2021-12-07 发布于湖北
  • 举报

国防《微机原理与接口技术》教学资料包 教学课件 第4章.ppt

第4章 汇编语言程序设计 【例4-4】 将变量X的值加上变量Y的值,结果保存在变量Z中。 分析:这个题目的流程很简单,但是要注意汇编语言的语法特点。 程序如下: ;数据段 DATA SEGMENT X DB 6 ;X是一个字节类型的变量 Y DB 9 ;Y是一个字节类型的变量 Z DB ? ;Z是一个字节类型的变量 DATA ENDS ;代码段 CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA ;DATA不能直接赋值给DS MOV DS,AX ;对DS赋值 MOV AL,X ;存储器寻址方式不能确定数据类型 MOV BL,Y ;X、Y先分别送到不同的字节(8位)寄存器中 ADD AL,BL MOV Z,AL HLT CODE ENDS END START 4.2.2 分支程序设计 顺序程序的特点是从程序的第一条指令开始,按顺序执行,直到最后一条指令。然而,许多实际问题并不能设计成顺序程序,需要根据不同的条件作出不同的处理。把不同的处理方法编制成各自的处理程序段,运行时由机器根据不同的条件自动作出选择判别,绕过某些指令,仅执行相应的处理程序段。按这种方式编制的程序,执行的顺序与指令存储的顺序失去了完全的一致性,称之为分支程序。分支程序是机器利用改变标志位的指令和转移指令来实现的。 【例4-7】 设有单字节无符号数X、Y、Z?,若X+Y255,则求X+Z,否则求X-Z,运算结果放在F1中。 分析:因为X,Y均为无符号数,所以当X+Y255时则会产生进位即CF=1,所以可以用进位标志来判断。 程序段如下: ;数据段 DATA SEGMENT X DB 128 Y DB 90 Z DB 50 F1 DB ? DATA ENDS ;代码段 CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX ;设置数据段段地址 1.简单分支程序设计 MOV AL,X ADD AL,Y JC? P1 ;有进位跳到P1 MOV AL,X SUB AL,Z JMP EXIT P1:MOV AL,X ADD AL,Z EXIT:MOV F1,AL HLT CODE ENDS END START 【例4-8】 ????? - 1 (X0) 试计算符号函数的值Y= 0? (X=0) ?????????????? 1? (X0) 程序如下: ;数据段 DATA SEGMENT X DB 6 Y DB ? DATA ENDS ;代码段 CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA 2.多分支程序设计 MOV DS,AX MOV AL,X CMP AL,0 ;下面是分支 JG G1 JZ Z1 MOV AL,-1 JMP EXIT G1:MOV AL,1 JMP EXIT Z1:MOV AL,0 EXIT:MOV Y,AL HLT CODE ENDS END START 1.循环结构的组成 4.2.3 循环程序设计 初始化部分 该部分包括设置地址指针、计数器及其他变量的初值等为循环做的准备工作。 循环体部分 这是主要部分,即对问题的处理。 循环控制部分 该部分包括每次执行循环体之后或之前参数的修改,对循环条件的判断等。 2.循环的分类 按照“先判断”还是“先执行”,可以分成“当型循环”与“直到型循环”;按照循环条件,可以分成“循环次数已知”与“循环次数未知”。汇编语言程序设计中更主要的是按照是否已知循环次数来区分,分别写成不同形式的代

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档