汇编语言的程序设计方法(循环结构和分支结构)

汇编语言中常见的形式有:顺序程序设计,分支程序设计,循环程序设计以及子程序设计
今天通过实例来详细说明分支程序设计,和循环程序设计
1.分支程序设计
根据不同的条件做出不同的处理,把不同的方法编织成各自的处理程序段,运行时由机器根据不同的条件自动做出选择判断。绕过某些指令,仅执行相应的处理程序段。按这种方法处理成为分支结构。
分支程序是机器利用改变标志位的指令和转移指令来实现的。
分支程序设计实例
给定以下符号函数:
汇编语言的程序设计方法(循环结构和分支结构)_第1张图片

给定X值,假设为-25,且存放于X单元,函数值Y存放于Y于单元,根据给定的X值确定Y得值
程序如下





DATAX    SEGMENT
 x  DB-25
 y DB?
 DATAX     ENDS
 CODEX   SEGMENT
 	MAIN 	PROC 	FAR
 		ASSUME CS:CODEX, DS:DATAX
 	START:	PUSH 	DS
 			MOV	 AX,	0
 			PUSH 	AX
 			MOV	AX,	DATAX
 			MOV	DS,	AX
 			MOV	AL,	x
 			CMP	AL,	0
 			JGE 	LOOP1
 			MOV	AL,	OFFH
 			MOV	y,	AL
 			RET
 		LOOP1:	JE	LOOP2
 			MOV	AL,	1
 			MOV	Y,	AL
 			RET
 		LOOP2:	MOV	AL,	0
 			MOV	y,	AL
 			RET
 		MAIN 	ENDP
 	CODEX 	ENDS
 		END	START


2.循环程序设计
(1)计数控制循环(限于循环次数已知)
该方法简单直观易于程序设计
(2)用条件控制循环
无法确定循环次数的时候用该方法
下面通过实例讲解

 	


DATAS	SEGMENT
 	n	DW?
 	sum	DW?
 	DATAS	ENDS
 	CODES 	SEGMENT
 		MAIN	PROC	FAR
 			ASSUME	CS:	CODES,	DS:	DATAS
 		START:	PUSH	DS
 			MOV	AX,	0
 			PUSH	AX
 			MOV	AX,	DATAS
 			MOV	DS,	AX
 			MOV	AX,	0
 			MOV	BX,	0
 			MOV	CX,	0
 		LOOPT: 	INC 	BX
 			ADD	AX,	BX
 			INC	CX
 			CMP 	AX.	1000
 			JBE	LOORT
 			MOV	n,	CX
 			MOV	sum,	AX
 			RET
 		MAIN 	ENDP
 		CODES	ENDS
 			END	START

问渠哪得清如许?为有源头活水来!
持续不断地输入,才会厚积薄发!
有遗漏的地方大家指正。一定第一时间修改!

你可能感兴趣的:(微机原理)