晕,
jmp 无条件跳转, 用法就是 jmp rel 程序执行到些句则无条件跳转到rel处执行,rel可以是标号,也可以是地址
CALL,是调用子程序的指令, call 就是调用标号是的这段子程序,直到子程序中遇到RET,再返回到CALL 的下一条语句执行
RET 的功能 ,上一点中有了, 表示子程序的结束
在程序段前缀(PSP)的0偏移处存放有十六进制码:CD 20
PUSH DS 数据段段址入栈
SUB AX,AX ;AX清0
PUSH AX ;AX值入栈
RET 从栈中d出AX、DS
可理解为:
POP IP ;重置指令指针
POP CS ;重置代码段址
转执行 CD 20 [程序段前缀(PSP)的0偏移处预存的十六进制码]
该指令是 INT 20H 的机器指令码,调用DOS的20H中断结束程序。
汇编语言MOVAH,4CHINT21H返回DOS中INT21H称为DOS中断调用。
实际上,是调用DOS中的子程序。当MOVAH,4CH,就是结束本程序,返回DOS *** 作系统。
大多数汇编语言规则都是以目标处理器及其机器语言的物理局限性为基础的。比如,CPU要求两个指令 *** 作数的大小相同。与C++或Java相比,汇编语言的规则较少,因为,前者是用语法规则来减少意外的逻辑错误,而这是以限制底层数据访问为代价的。
汇编语言程序员可以很容易地绕过高级语言的限制性特征。例如,Java就不允许访问特定的内存地址。程序员可以使用JavaNativeInterface类来调用C函数绕过这个限制,可结果程序不容易维护。
反之,汇编语言可以访问所有的内存地址。但这种自由的代价也很高:汇编语言程序员需要花费大量的时间进行调试。
扩展资料:
汇编语言只是将机器语言做了简单编译,所以并没有根本上解决机器语言的特定性,所以汇编语言和机器自身的编程环境息息相关,推广和移植很难,但是还是保持了机器语言优秀的执行效率,因为他的可阅读性和简便性,汇编语言到现在依然是常用的编程语言之一。
汇编语言不像其他大多数的程序设计语言一样被广泛用于程序设计。在今天的实际应用中,它通常被应用在底层,硬件 *** 作和高要求的程序优化的场合。驱动程序、嵌入式 *** 作系统和实时运行程序都需要汇编语言。
参考资料:
子程序:子程序又称为过程,它相当于高级语言中的过程和函数。在一个程序的不同部分,往往要用到类似的程序段,这些程序段的功能和结构形式都相同,只是某些变量的赋值不同,此时就可以把这些程序段写成子程序形式,以便需要时可以调用它;某些常用的特定功能
以上就是关于汇编语言转移指令jmp、call、ret的问题。。全部的内容,包括:汇编语言转移指令jmp、call、ret的问题。。、汇编语言程序的意思、汇编语言MOV AH,4CH INT 21H返回DOS具体有什么用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)