汇编语言程序设计
例:设数据段中NUM1,NUM2两字节单元中有无符号整数,编程完成下面的操作:
如两数均是偶数,两数加1后分别送入DA1、DA2字节单元如两数均是奇数,两数分别直接送入DA1、DA2字节单元中如一个是奇数,一个是偶数,则奇数直接送 DA1字节单元,偶数直接送DA2字节单元。
分析:依次测试NUM1和NUM2的奇偶性,有4种情况
流程图`:
源程序
DATA SEGMENTNUM1 DB 45HNUM2 DB 0AEHDA1 DB ?DA1DB?DATAENDSCODESEGMENTASSUMECS:CODE, DS:DATABEING:MOV AX,DATA;置段基值于DSMOV DS,AXMOV AL,NUM1MOV AH,NUM2TEST AL,01H;测试NUM1的奇偶性JNE END0;NUM1为奇数,ZF为0,跳转移到END0,ZF为1,继续执行TEST AH,01HJNE L1INC ALINC AHJMP END0L1:XCHG AL,AHEND0:MOV DA1,ALMOV DA2,AHMOV AH,4CHINT 21HCODE:ENDSEND BEING
无条件转移指令
格式:
JMP 目标地址
直接寻址:目标地址通常是标号
例如: JMP NEXT;NEXT为标号
间接寻址:
段内转移:JMP CX;目标地址的偏移地址在CX中
JMP WORD PTR [BX];目标地址的偏移地址在一个字单元中
或 JMP [BX]
段间转移:JMP DWORD PTR [BX];目标地址在一个双字单元中
条件转移
:
JXX 目标地址