jns

171.控制转移指令

拟墨画扇 提交于 2021-01-13 00:39:35
1.控制转移指令  无条件转移指令 JMP  条件转移指令 JZ / JNZ 、 JE / JNE、 JS / JNS、 JO / JNO、 JP / JNP、 JB / JNB、 JL / JNL、 JBE / JNBE、 JLE / JNLE、 JCXZ  循环指令 LOOP、LOOPZ / LOOPE、LOOPNZ / LOOPNE  子程序调用和返回指令 CALL、RET  中断与中断返回指令 INT、INTO、IRET 2.无条件转移指令 段内直接短转移:JMP SHORT OPR   执行操作:(IP) ← (IP) + 8位位移量 段内直接近转移:JMP NEAR PTR OPR   执行操作:(IP) ← (IP) + 16位位移量 段内间接转移: JMP WORD PTR OPR   执行操作: (IP) ← (EA) 段间直接远转移:JMP FAR PTR OPR   执行操作:(IP) ← OPR 的段内偏移地址        (CS) ← OPR 所在段的段地址 段间间接转移: JMP DWORD PTR OPR   执行操作: (IP) ← (EA)         (CS) ← (EA+2) 3.条件转移指令 注意:只能使用段内直接寻址的8 位位移量 3.1根据单个条件标志的设置情况转移 格式 测试条件 JZ(JE) OPR ZF=1 jump

8086汇编语言程序设计——分支

二次信任 提交于 2020-07-29 03:35:16
汇编语言程序和高级语言程序一样,有顺序、分支、循环、子程序四种结构形式。 计算机程序在执行过程中,可以改变程序的执行顺序,根据一定的条件进行转移,使程序完成更复杂的功能。汇编语言提供了无条件转移指令和条件转移指令。 一个分支程序的例子 示例 设计分支程序,实现下列公式计算。X、Y为字型。假设X单元中保存三个数:9,-6,34,分别作判断和计算。 设计思路: (1) 在数据段中定义2个字型变量X、Y,均为带符号数; (2) 在X单元中依次取出三个数分别作判断,根据X的大小作分支转移; (3) 采用寄存器相对寻址方式(MOV AX,X[SI])取出X的三个值; (4) 标号OUT1是各路分支的公共出口。 程序框图: 代码: ; a.asm 用正常程序格式编写分支程序 data segment x dw 9 ,- 6 , 34 y dw 3 dup(?) ;定义一个变量,占3的字,每个字的内容未知 data ends code segment assume cs: code, ds: data start: mov ax,data mov ds,ax mov cx, 3 ;循环三次 mov si, 0 let0: mov ax,x[si] ;取出X cmp ax, 0 ;X ≥ 0 ? jge let1 ;是,转到let1 mov bx,ax ;否,计算X*X imul bx jmp