微机原理与汇编语言中的指令JMP、CALL的区别

作者&投稿:别建 (若有异议请与网页底部的电邮联系)
微机原理jmp指令应用~

JMP 是无条件转移指令,例如以下程序段中,
JMP FINISH 指令的功能是转移到标号FINISH处,执行INT 3指令。
……
START: MOV AX, SEG DATA
MOV DS, AX
LEA SI, DATA
MOV AL, [SI]
MOV DL, [SI+1]
CMP DL, AL
JA MAX2
MAX1: MOV MAX, AL
JMP FINISH
MAX2: MOV MAX, DL
FINISH: INT 3
……

LOOP在80x86汇编语言里面,是一条指令。
就是说,LOOP,是保留字(Reserved word )。
那么,LOOP,就不能当做标号使用。
你用MASM软件编译一下,就会提示这个错误,不会通过编译的。

汇编语言中,JMP是无条件转移指令,CALL是子程序调用指令。
指令JMP、CALL的区别在于,JMP指令控制程序直接跳转到目标地址执行程序,程序总是顺序执行,指令本身无堆栈操作过程。CALL指令跳转到指定目标地址执行子程序,执行完子程序后,会返回CALL指令的下一条指令处执行程序,执行CALL指令有堆栈操作过程。
举例如下:
JMP NEAR NEXT;跳转到NEXT执行程序
......
NEXT: ;目标地址,程序将从这里向下执行
......

CALL NEXT;调用从地址NEXT开始的子程序

NOP ;子程序结束后返回到这里,然后向下继续执行程序
......

NEXT: ;子程序目标地址,程序将从这里向下执行

RET ;子程序返回指令,子程序执行到此结束,返回CALL指令的下一条指令处

jmp无条件跳转,无返回,没有压栈(起到保护数据的作用)。call通过入口地址跳转有返回,返回地址压入堆栈。

jmg是无返回的,想回来还要jmp才行
call是调用过程或函数,以ret,retf之类的返回到调用位置或下一句

(1)

JMP L1
L1:表示的是L1-(当前指针+1)
(2)

CALL L2
L2 ;表示的是L1-(当前指针+1)
将程序压栈入内存


【微机原理】1.汇编语言程序设计(1)
让我们以一个简单实例来揭开汇编的神秘面纱:给定存储在内存中的a和b,我们要让CPU执行加法并将结果存入c,最后输出c的值。这与C语言中的变量声明和操作有着显著区别,但本质是相同的:处理数据和指令。基础定义: 在汇编语言中,我们使用DW(字)来定义数据,如B DW 04H,它表示双字节数据,偏移地址根...

微机原理与接口技术和汇编语言有什么联系?
我认为 1.汇编语言服务于微机原理,而微机原理不只是汇编语言。除了汇编语言还有与计算机接口的知识。2.微机原理中的语句。大多就是汇编语言这书中所讲的语句。但是有些他不用到的就没讲。也就是说,微机原理中的语句不全。3、正应为微机原理所用的汇编语句不全,所以才另外出汇编语言的书。以上为...

学微机原理与应用需要先学汇编语言吗?
不需要先学习汇编。微机原理,主要是讲硬件,在此期间,也讲一些汇编语言。在微机里面讲的汇编,比较简明、浅显,要求也不高,还是容易掌握的。单独开设的汇编语言,就滥多了,更难了,而且,学完了以后,基本是无用的。现在,高校的教学,都要讲成本,电子信息工程专业,已经没有单独开设《汇编语言》课...

微机原理与接口技术中4个通用寄存器加中括号和不加中括号有什么...
在8088汇编语言中,中括号内部是地址号码。\\x0d\\x0aMOV AX, 2000H ;把2000H送到AX\\x0d\\x0aMOV AX, [2000H] ;把2000H存储单元内的数据送AX\\x0d\\x0aMOV AX, DX ;把DX内容送AX\\x0d\\x0aMOV AX, [DX] ;把DX指定的单元的数据送AX ...

微机原理 汇编语言的小问题
CMP AL,30H;比较AL与30H JC L1;AL<30H转到L1 CMP AL,3AH;AL>=30H,则继续与3AH比较 JNC L1;AL<=3AH,则转L1 AND AL,0FH;AL>3AH,保留AL低四位 RET L1: MOV AL,0FFH;AL=FFH RET 你这个没有给出AL初值,无法确定最终结果。这是确定0~9数字的程序。按你的答案,估计AL初值是37...

汇编语言小问题 微机原理
第一题:当前指令物理地址是由cs:ip决定的,则下一条指令应该是cs*16+(ip+2H)=10000H+102H=10102H 当前栈顶物理地址为SS*16+SP=40200H [BX]对应的段寄存器是DS所以物理地址是DS*16+BX=20300H [BP]对应的是SS所以物理地址是SS*16+BP=40400H ES:[BX+SI]的物理地址为ES*16+BX+SI=30...

汇编语言 微机原理与接口技术
14.8086CPU中,ALE引脚是_地址锁存_信号。17.指令ADD [BX+DI],CX 源操作数的寻址方式是__寄存器寻址__,目的操作数的寻址方式是__基址变址寻址_。18.已知下列指令执行前,CS=2000H,IP=1000H, SI=2000H,写出下列无条件指令执行后CS和IP值。(1)EBF4 JMP SHORT L1 CS=2000H ,IP=。

微机原理与接口技术是一种汇编语言吗?
用C51编程,这是C语言,不是汇编语言的,根本不是一回事的。而微机原理中讲的编程通常是用汇编语言,而汇编语言是不通用的,针对不同的单片机或CPU,语句是不同的,微机原理用的汇编语句是针对8086的或80286,80386等,而51单片机的汇编语句是针对51系列单片机的。

微机原理
《微机原理》是一门专业基础课程,它的主要内容包括微型计算机体系结构、8086微处理器和指令系统、汇编语言设计以及微型计算机各个组成部分介绍等内容。要求考生对微机原理中的基本概念有较深入的了解,能够系统地掌握微型计算机的结构、8086微处理器和指令系统、汇编语言程序设计方法、微机系统的接口电路设计及...

请教cmp指令 汇编语言 微机原理
cmp是汇编的比较指令;cmp(compare)指令的作用:进行比较两个操作数的大小;例如:cmp oprd1,oprd2 为第一个操作减去第二个操作数,但不影响第两个操作数的值;它影响flag的CF,ZF,OF,AF,PF 怎么判断大小呢?若执行指令后;ZF=1 这个简单,则说明两个数相等,因为zero为1说明结果为0 当无符号...

东阿县17563884460: 汇编指令JMP是什么意思? -
平姚硫唑: 无条件转移指令JMP 格式: JMP OPRD 功能: JMP指令将无条件地控制程序转移到目的地址去执行.当目的地址仍在同一个代码段内,称为段内转移;当目标地址不在同一个代码段内,则称为段间转移.这两种情况都将产生不同的指令代码,以...

东阿县17563884460: 微机原理jmp指令应用 -
平姚硫唑: JMP 是无条件转移指令,例如以下程序段中,JMP FINISH 指令的功能是转移到标号FINISH处,执行INT 3指令.…… START: MOV AX, SEG DATA MOV DS, AX LEA SI, DATA MOV AL, [SI]MOV DL, [SI+1] CMP DL, AL JA MAX2 MAX1: MOV MAX, AL JMP FINISH MAX2: MOV MAX, DL FINISH: INT 3 ……

东阿县17563884460: 汇编语言中的JMP到底是个啥嘛…不懂诶… -
平姚硫唑: 就是跳转指令,指令放在内存中,是按照顺序一条一条的执行,遇到JMP,就可以跳到JMP指定的地址去执行指令,而不是执行下一条指令.

东阿县17563884460: 汇编中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配合使用

东阿县17563884460: 汇编语言中jmp与loop指令有什么区别? -
平姚硫唑: 汇编语言中,JMP是无条件转移指令.LOOP是循环指令,循环次数由计数寄存器CX指定.

东阿县17563884460: 汇编语言:JMP指令的疑问 -
平姚硫唑: 这条指令的意思是取标号的地址然后加上16位的位移量所得到的是跳转的地址

东阿县17563884460: 汇编语言中,无条件转移指令JMP,其中的JMP NEAR LABEL和JMP FAR LABEL还有JMP LA -
平姚硫唑: JMP NEAR LABEL ---- 段内直接转移 JMP FAR LABEL ---- 段间直接转移 JMP LABEL -----短距离(往前128字节、往后127字节)内直接转移

东阿县17563884460: 微机原理中JNO JNC JMP代表什么意思,最好具体解释下.谢谢!! -
平姚硫唑: JNO of = 0则跳转 JNC cf = 0则跳转 JMP 无条件跳转

东阿县17563884460: jmp $在微机原理中是什么意思 -
平姚硫唑: DATAS SEGMENTsec db 24 ;倒数的秒数,可以随意更改osec db 0startmsg db "Counting down .... press [p] to puase, [c] to continue, [s] to stop",13,10,"$"timesup db 13,10,"Times up!"endmsg db 13,10,"Thanks for using, bye~$...

东阿县17563884460: 简述互锁指令il和跳转指令jmp的区别 -
平姚硫唑: 汇编语言中,JMP是无条件转移指令,CALL是子程序调用指令.指令JMP、CALL的区别在于,JMP指令控制程序直接跳转到目标地址执行程序,程序总是顺序执行,指令本身无堆栈操作过程.CALL指令跳转到指定目标地址执行子程序,执行...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网