欢迎来到朵拉利品网
知识中心
资讯
  • 资讯
  • 产品
  • 供应商
您的位置: 朵拉利品网 >  知识中心 > jbe汇编 汇编语言emu8086
jbe汇编 汇编语言emu8086
2020-03-13 18:21:14 来源:朵拉利品网

1, 汇编语言emu8086



DATA SEGMENT
A DB 34H,30H,35H,38H,39H,33H,37H,2AH,0CH,9DH,0
N EQU $ - A
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX, DATA
MOV DS, AX
CALL DISP ;先显示一遍
;-----------------------------
SORT: ;开始排序
MOV CX, N
DEC CX
L1:
PUSH CX
LEA BX, A
L2:
MOV AL, [BX]
CMP AL, [BX + 1]
JB NEXT
XCHG AL, [BX + 1]
MOV [BX], AL
NEXT:
INC BX
LOOP L2
POP CX
LOOP L1
;-----------------------------
CALL DISP ;再显示一遍
EXIT:
MOV AH, 4CH
INT 21H
;=============================
DISP:
LEA BX, A
MOV CX, N
N0:
MOV AL, [BX]
MOV AH, 0
MOV DL, 16
DIV DL
MOV DX, AX
MOV AH, 2
CMP DL, 10
JB N1
ADD DL, 7
N1: ADD DL, "0"
INT 21H
MOV DL, DH
CMP DL, 10
JB N2
ADD DL, 7
N2: ADD DL, "0"
INT 21H
MOV DL, "H"
INT 21H
MOV DL, " "
INT 21H
INC BX
LOOP N0
MOV DL, 13
INT 21H
MOV DL, 10
INT 21H
RET
;=============================
CODE ENDS
END START

2, 汇编,用子程序编写



.model tiny
.code
; 输入AL为2进制,输出AL为对应的ASCII码
BIN2HEX PROC
CMP AL,9
JBE L_10
ADD AL, "A"-"9"-1
L_10:
ADD AL,"0"
RET
BIN2HEX ENDP
;主程序
start:
MOV AX, 1Bh
PUSH AX
SHR AL,1
SHR AL,1
SHR AL,1
SHR AL,1
CALL BIN2HEX
MOV DH,AL
POP AX
AND AL,0FH
CALL BIN2HEX
MOV DL,AL
MOV AX,4C00h
int 21h
;结束
end start

3, 汇编语言里jc指令是什么意思?



JC=Jump if Carry
当运算产生进位标志时,即CF=1时,跳转到目标程序处。
例如:
add al,bl
jc carrybit
inc al;如果al+bl产生了进位,这一句就不执行了。
carrybit:
neg al
这段程序没有任何意义,仅仅作为示例哈。。。
相同的指令还有:
JNC,当CF=0时跳转;
JZ,当ZF=1时跳转,JNZ,当ZF=0时跳转;
JO,当OF=1时跳转,JNO,当OF=0时跳转;
JP,当PF=1时跳转……
依此类推,标志寄存器的各个位基本上都可以用来做“条件跳转”的条件。
当然,条件跳转不仅仅是标志寄存器位,还可以是CX
如:
a_loop:
;do something
dec cx
jcxz
jmp a_loop
可以看出,这一段相当于一个loop指令。。。
还有,用于大小判断型的:
cmp op1,op2
JXX XXXX
其中JXX有以下几种:
JA表示op1>op2,JNA表示op1<=op2;
JB表示op1<op2,JNB表示op1>=op2;
JE表示op1=op2,JNE表示op1<>op2;
还有JAE、JNAE、JBE、JNBE等等功能重复不再赘述。
以上是无符号数的比较。
有符号数的比较将A换成G,将B换成L即可。
A=above B=below G=greater L=less
介绍的够详细了吧。。。

5, 用汇编语言写约瑟夫环



CMP OPR1 , OPR2指令只是对操作数OPR1 , OPR2之间运算比较,不保存结果。指令本身不进行跳转,只是根据结果设置相关的条件标志位(SF、ZF、CF、OF),CMP指令后往往跟着条件转移指令,实现根据比较的结果产生不同的程序分支的功能。
格式:CMP OPR1 , OPR2.
执行操作:(OPR1)-(OPR2)
功能:该指令与SUB指令一样执行减法的操作,但它并不保存运算结果,只是根据结果设置相关的条件标志位(SF、ZF、CF、OF)。CMP指令后往往跟着条件转移指令,实现根据比较的结果产生不同的程序分支的功能。
跳转相关的条件跳转指令:
1、JA/JNBE DEST指令:转移条件是CF=0 AND ZF=0,含义是无符号数A>B,英文表示是JMP above (not below or equal)。
2、JAE/JNB DEST指令:转移条件是CF=0,含义是无符号数A≥B,英文表示是JMP above or equal (not below )。
3、JB/JNAE DEST指令:转移条件是CF=1,含义是无符号数A<B,英文表示是JMP blow (not above or equal)。
4、JBE/JNA DEST指令:转移条件是CF=1 OR ZF=1,含义是无符号数A≤B,英文表示是JMP blow or equal (not above)。
参考资料来源:百度百科-CMP指令
参考资料来源:百度百科-条件转移指令

名词解释


跳转

这个动作难度不是很大,但是需要协调性跟腰力支配身体。首先要练习的是第一周的翻腾。 起始动作如右图所示动作要点:身体跟双腿大腿部保持平行,用腰的力量。身体重心要把握好,不要太偏了。