汇编指令的 疑惑 JMP 指令
JMP跳转指令 无条件的转移到指令指定的地址去执行从该地址开始的命令。指令必须指定转移的目标地址(或称转向地址)。 JMP指令不影响条件码。 计算机汇编语言中的一种跳转指令.当需要分支程序时,散转程序有时可以帮我们实现。使用指令JMP @A+DPTR,可实现多分支转移。它是根据某种输入或运算的结果,分别转向各个处理程序段取执行程序。 JMP $ 就是跳转到当前的地址, 所以它是一个死循环,不继续执行下面的程序了。 他的意思在于我要求的所有任务已经完成了,后面没有任务了,那么,就原地踏步吧! 我已经设置好中断服务程序了,只要发生中断就会进入中断服务程序,所有的操作都在中断服务程序处理。 编辑本段JMP系列软件 SAS(全球最大的统计学软件公司)推出的一种交互式可视化统计发现软件系列,包括JMP,JMP Pro,JMP Clinical,JMP Genomics,SAS Simulation Studio for JMP等强大的产品线。主要用于实现统计分析。JMP的算法源于SAS,特别强调以统计方法的实际应用为导向,交互性、可视化能力强,使用方便,尤其适合非统计专业背景的数据分析人员使用,在同类软件中有较大的优势。 目前JMP的最新版本是JMP9,其主要特点括: 1. 交互性:JMP可以帮助用户很好地实现与数据之间的“互动”,包括图形、数据表等之间都是实时交互的,这对实现探索性数据分析和提高分析效率比较有帮助。 2. 可视化:数据可视化能力一直是JMP值得称道的特点之一。 3. 功能和性能:除了一般软件能提供的常规统计分析功能外,JMP还具备时间序列、聚类等高级分析功能以及决策树、神经网络等专业数据挖掘工具,功能颇为强大;另外,JMP还提供了非常完整的六西格玛及质量管理统计方法,如试验设计DOE,测量系统分析MSA等,可靠性分析(Reliability)等。其中,JMP的试验设计方案堪称一绝,灵活性和完整性都很突出。此外,JMP Pro还能提供更强大的计算能力以及更加先进的数据挖掘和预测功能;JMP Clinical是SAS公司推出的下一代生命科学分析平台;JMP Genomics是专业的基因数据分析软件。 4. 可扩展性:JMP既可以单独运行,也可以和SAS,R等分析系统结合使用;运用JMP编程语言JSL,可以开发个性化的分析程序或者数据分析的自动化模版等。 5.使用便利性:JMP采用图形界面操作,其强大的交互性和可视化能力使得使用变得容易;JMP的菜单设置与一般统计软件不同,它采用嵌套的形式,按照分析和解决问题的思路而设计,具备了较好的防错能力。 JMP的应用领域包括业务可视化、探索性数据分析、六西格玛及持续改善(可视化六西格玛、质量管理、流程优化)、试验设计、生存及可靠性、统计分析与建模、交互式数据挖掘、分析程序开发等。JMP是六西格玛软件的鼻祖,当年摩托罗拉开始推六西格玛的时候,用的就是JMP软件,目前有非常多的全球顶尖企业采用JMP作为六西格玛软件,包括陶氏化学、惠而浦、铁姆肯、招商银行、美国银行、中国石化等等。 JMP的应用非常广泛,全球用户数已经超过三十万,全球顶尖企业基本都是它的用户,像英特尔、戴尔、苹果、摩托罗拉、IBM、HP、Google、GE、NEC、Sony、阿斯利康、辉瑞制药、礼来、罗氏、宝洁、联合利华、陶氏化学、巴斯夫、铁姆肯、霍尼韦尔、丰田汽车、汇丰银行、美国银行、招商银行、苏格兰皇家银行、中国石化、北京大学、人民大学、首都经贸大学、清华大学、上海交通大学、沃顿商学院、哈佛大学、MIT、耶鲁大学、牛津大学…… 在医药领域,以严格和严谨著称的美国食品与药物管理局(FDA)对于药企申报的新药报告中的统计分析部分,只接受用SAS和JMP分析得出的统计结果。其40%以上的药物评审员都是JMP用户。
汇编语言中,JMP是无条件转移指令。
LOOP是循环指令,循环次数由计数寄存器CX指定。
ORG 100H
VAR1 DB 12H
VAR2 DB VAR1 - $ +1001H ;100H-101H+1001H=1000H
因为VAR2定义为字节变量,所以,VAR2存储单元保存的是1000H的低字节值,即00H。
VAR3 DD VAR2 ;VAR2的地址值是101H,所以,VAR3存储单元的低位字是101H;高位字存放的是当前数据段段值。假设(DS) = 1234H,VAR3存储单元的值是:01H 01H 34H 12H。
VAR3-1=102H-1=101H,DWORD PTR VAR3-1存储单元,即101H所指的双字单元的值是:00H 01H 01H 34H
JMP DWORD PTR VAR3-1执行后,就是无条件跳转到DWORD PTR VAR3-1双字存储单元所指定的地址,即:00H 01H 01H 34H。所以,JMP DWORD PTR VAR3-1执行后,CS=3401H,IP=0100H
无异议!
赖儿特尔: 这条指令的意思是取标号的地址然后加上16位的位移量所得到的是跳转的地址
紫金县15010269246: 汇编指令JMP是什么意思? - ?
赖儿特尔: 含义 无条件的转移到指令指定的地址去执行从该地址开始的命令.指令必须指定转移的目标地址(或称转向地址). JMP指令不影响条件码. 计算机汇编语言中的一种跳转指令.当需要分支程序时,散转程序有时可以帮我们实现.使用指令...
紫金县15010269246: 汇编指令jmp是伪指令吗? - ?
赖儿特尔: 不是,伪指令没有对应的机器码, 是由编译器执行的指令,最终不被CPU执行,而JMP是汇编指令,汇编指令是有对应的机器码的指令, 可以被编译为机器指令,最终为CPU所执行.
紫金县15010269246: 汇编语言中的JMP到底是个啥嘛…不懂诶… - ?
赖儿特尔: 就是跳转指令,指令放在内存中,是按照顺序一条一条的执行,遇到JMP,就可以跳到JMP指定的地址去执行指令,而不是执行下一条指令.
紫金县15010269246: 汇编 JMP 详细用法 - ?
赖儿特尔: jmp指令就是跳转指令,基本格式有如下几种:jmp 标号——跳转到标号处执行jmp short 标号——跳转到标号处执行(8位跳转)jmp near ptr 标号——跳转到标号处执行(16位跳转)jmp far ptr 标号——跳转到标号处执行(短间跳转)jmp 寄存器——跳转到某地方执行(寄存器里存放偏移地址)jmp word ptr 内存单元地址(内存单元里存放要跳转的段地址和偏移地址)jmp 段地址:偏移地址 (注意:这个指令是在debug下使用)
紫金县15010269246: JMP指令包括什么 - ?
赖儿特尔: jmp指令用法总结: 1.直接用法(只能在Debug下使用的汇编指令): jmp 段地址:偏移地址 功能:修改CS、IP的内容 例子:jmp 55BA:8 执行后:(CS)=55EAH, (IP)=0008H 2.根据标号进行转移的用法: (1).转移的目的地址不在指令中,...
紫金县15010269246: 汇编语言jmp和call的区别 - ?
赖儿特尔: 汇编语言中,jmp是跳转指令,直接跳走了,call是调用函数指令,函数执行完后会回到调用位置继续执行下一条指令.
紫金县15010269246: 汇编中JMP指令怎么用啊,怎么跳出啊 - ?
赖儿特尔: 跳转指令不止jmp,jmp是无条件跳转,jmp要配合条件跳转指令使用 比如C语言程序: s=0; for (int i=0;i<10;++i) { s+=i; } 可能会编译为等效如下汇编代码的指令: mov eax,0 mov ebx,0 loop1: cmp ebx,10 jge out add eax,ebx add ebx,1 jmp loop1 out: mov s,eax 这里jmp就和jge配合使用
紫金县15010269246: 我看在汇编 中经常用到 jmp指令,我想问问怎么从中跳出呢,好像一直在循环啊,那JMP后面的语句永远也执行 - ?
赖儿特尔: JMP只是一个无条件跳转指令,可以任意跳转. 按照你说一直在循环是这种结构 NEXT:.............JMP NEXT (只是随便举个例子) 这结构如果在中间不加任何跳转就是个死循环 ,因为程序是顺序执行的,跳到NEXT时,又顺序往下执行,所以...
紫金县15010269246: 汇编语言指令:JMP BYTE PTR [BX]错在哪儿 - ?
赖儿特尔: jmp指令的操作数是地址,实际执行效果是修改IP的值. 由于BYTE PTR使得BX指向的数据为字节类型,而IP为字类型,数据类型不匹配,故该指令不正确. 指令的正确写法可以是jmp word PTR [BX],此时将BX指向的字类型数据赋给IP;或者...