汇编语言中JB,JA,是什么意思

如题所述

汇编语言中JB、JA都是条件转移指令,常用于比较两个无符号数的大小,判断条件是CF、ZF状态的组合。为确定CF、ZF状态,转移前用CMP指令设置标志位(CMP
A,B)。其中:
指令JA表示
CF=0
且ZF=0
即A>B转移。
指令JB表示
CF=1
且ZF=0
即A
<B转移。
许多汇编程序为程序开发、汇编控制、辅助调试提供了额外的支持机制。有的汇编语言编程工具经常会提供宏,它们也被称为宏汇编器。
汇编语言不像其他大多数的程序设计语言一样被广泛用于程序设计。在今天的实际应用中,它通常被应用在底层,硬件操作和高要求的程序优化的场合。驱动程序、嵌入式操作系统和实时运行程序都需要汇编语言。
扩展资料
语言特点
汇编语言是直接面向处理器(Processor)的程序设计语言。处理器是在指令的控制下工作的,处理器可以识别的每一条指令称为机器指令。每一种处理器都有自己可以识别的一整套指令,称为指令集。
处理器执行指令时,根据不同的指令采取不同的动作,完成不同的功能,既可以改变自己内部的工作状态,也能控制其它外围电路的工作状态。
汇编语言的另一个特点就是它所操作的对象不是具体的数据,而是寄存器或者存储器,也就是说它是直接和寄存器和存储器打交道,但同时这也使编程更加复杂,因为既然数据是存放在寄存器或存储器中,那么必然就存在着寻址方式,也就是用什么方法找到所需要的数据。
这也就增加了编程的复杂性,因为在高级语言中寻址这部分工作是由编译系统来完成的,而在汇编语言中是由程序员自己来完成的,这无异增加了编程的复杂程度,降低了程序的可读性。
参考资料来源:百度百科-汇编语言
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-01-17
汇编语言中JB、JA都是条件转移指令,常用于比较两个无符号数的大小,判断条件是CF、ZF状态的组合。为确定CF、ZF状态,转移前用CMP指令设置标志位(CMP
A,B)。其中:
指令JA表示
CF=0
且ZF=0
即A>B转移。
指令JB表示
CF=1
且ZF=0
即A
<B转移。
许多汇编程序为程序开发、汇编控制、辅助调试提供了额外的支持机制。有的汇编语言编程工具经常会提供宏,它们也被称为宏汇编器。
扩展资料
汇编语言能够利用计算机的所有硬件特性并能够直接控制硬件的唯-语言。但是由于编写和调试汇编语言程序要比高级语言复杂,因此目前其应用不如高级语言广泛。
汇编语言比机器语言的可读性要好,但跟高级语言比较而言,可读性还是较差。不过采用它编写的程序具有存储空间占用少、执行速度快的特点,这些是高级语言所无法取代的。
在实际应用中,是否使用汇编语言,取决于具体应用要求、软件开发时间和质量等方面作权衡。
汇编语言的优点
1)可以轻松的读取存储器状态以及硬件I/O接口情况
2)编写的代码因为少了很多编译的环节,可以能够准备的被执行
3)作为一种低级语言,可扩展性很高
汇编语言的缺点
1)因为代码非常单调,特殊指令字符很少,所以造成了代码的冗长以及编写的困难
2)因为汇编仍然需要自己去调用存储器存储数据,很容易出现BUG,而且调试起来也不容易
3)就算完成了一个程序,后期维护时候也需要耗费大量的时间。
4)因为机器的特殊性造成了代码兼容性差的缺陷。
参考资料来源:百度百科-汇编语言
第2个回答  2017-01-06
JA ;无符号大于则跳转
JB ;无符号小于则跳转
跳转/转移 指令。

抄来一个 JA 测试例子:
; Test28_7.asm;
.386
.model flat, stdcall

include windows.inc
include kernel32.inc
include masm32.inc
include debug.inc
includelib kernel32.lib
includelib masm32.lib
includelib debug.lib
.code
main proc
PrintText '1'
mov eax, 22
cmp eax, 11
ja @F
PrintText '2'
PrintText '3'
@@: PrintText '4'
ret
main endp
end main本回答被网友采纳
相似回答