微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 第10章 代码的跳转(1)(X86汇编教程)

第10章 代码的跳转(1)(X86汇编教程)

时间:12-01 来源:互联网 点击:
最近发生了一些事情,没法像以前那么上网了,手指受了点伤打字也不方便,所以隔了那么久,写这章是为了说明:"这教程还没挂,不要放弃这教程!",写完这章我会停更一段时间.安心养伤...另外,现在是借用别人的PC写教程无法截图什么的请原谅...

这一章讲的是跳转,跳转是什么呢?跳转就是当代码执行到一定地方后跳到另一个地方去执行.跳转是很重要的,有了跳转电脑才能根据鼠标键盘的操作执行相应的代码.如果没有跳转,电脑就只能按照设定的路一直走.管你鼠标键盘怎么动.一段代码执行过去就死机了.而有了跳转,你按下鼠标的时候电脑就能跳转到鼠标相关代码去执行.

不过,能根据情况判断的跳转是比较复杂的,要很久之后才教,这一章先教"无条件跳转",所谓的无条件跳转就是不管什么情况,有没有碰到鼠标键盘只要运行到无条件跳转代码都会跳转."图"解↓

某行代码

某行代码

某行代码

无条件跳转代码,向下跳3行──┐

某行代码│

某行代码│

某行代码←─────────┘

某行代码

某行代码

就这样,CPU碰到跳转代码后就会跳转到代码指定的地方执行.可以上跳也可以下跳.当然,不可能用行数来表达想跳转的地方的.因为汇编终究会转换成机器码,机器码可不是按行来算的,而是字节.不过,放心,我们学的是汇编,不是机器码,我们只要告诉编译器我们要跳转到哪一行,汇编编译器会自动把相差的字节数计算出来写上去的.

那么,我们如何告诉编译器,我们要跳转到哪一行呢?这就得用到标号了.还记得前边讲解的汇编代码格式吗?在指令名前边还能加个叫做"标号"的东西,用":"(不含双引号)和指令区分开.实例如下↓

BiaoHao:MOV AX,BX

我们可以在汇编指令前面加个标号,然后在我们的跳转指令里边加上这个标号,就能跳转到这行代码了.

好了,说了这么多,该介绍跳转指令了...


指令名:JMP

操作数数量:1

操作数名:内存地址(就是代码标号啦)

指令用途 :跳转到内存指定地方执行代码


实例:

某行代码

某行代码

JMP BiaoHao

某行代码

某行代码

BiaoHao:MOV AX,BX

某行代码

恩,这一章就讲到这里了.

例行作业:

编写一段程序,要求有2个以上的标号.

3次以上的跳转

禁止跳转到同一个地方超过2次

作业提交邮箱:o7007@vip.qq.com

提交作业请发代码..我可不想去debug里跟踪程序..

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top