汇编语言程序设计

例:设数据段中NUM1,NUM2两字节单元中有无符号整数,编程完成下面的操作:

  • 如两数均是偶数,两数加1后分别送入DA1、DA2字节单元
  • 如两数均是奇数,两数分别直接送入DA1、DA2字节单元中
  • 如一个是奇数,一个是偶数,则奇数直接送 DA1字节单元,偶数直接送DA2字节单元。

分析:依次测试NUM1和NUM2的奇偶性,有4种情况
在这里插入图片描述

流程图`:
在这里插入图片描述

源程序

DATA SEGMENT
NUM1 DB 45H
NUM2 DB 0AEH
DA1 DB ?
DA1	DB?
DATA	ENDS
CODE	SEGMENT
 	    ASSUME	CS:CODE, DS:DATA
BEING:MOV AX,DATA     ;置段基值于DS
		MOV DS,AX      
		MOV  AL,NUM1
		MOV  AH,NUM2	
		TEST AL,01H		;测试NUM1的奇偶性
		JNE  END0		;NUM1为奇数,ZF为0,跳转移到END0,ZF为1,继续执行
		TEST AH,01H
		JNE  L1
    	INC  AL
		INC  AH
    	JMP END0
L1:		XCHG AL,AH
END0:	MOV DA1,AL
		MOV DA2,AH
		MOV AH,4CH
		INT 21H
CODE:	ENDS
		END BEING

无条件转移指令
格式:

JMP 目标地址
直接寻址:目标地址通常是标号
例如: JMP NEXT;NEXT为标号
间接寻址:
段内转移:JMP CX;目标地址的偏移地址在CX中
JMP WORD PTR [BX];目标地址的偏移地址在一个字单元中
或 JMP [BX]
段间转移:JMP DWORD PTR [BX];目标地址在一个双字单元中

条件转移

JXX 目标地址
在这里插入图片描述
在这里插入图片描述


版权声明:本文为weixin_48437766原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_48437766/article/details/121574549