当前位置:首页>真相 > 

07汇编第三章重中之重

07汇编第三章重中之重

07汇编第三章重中之重

本文核心词:

07/汇编第三章重中之重

这个呢是一些前面的一些简单的一些知识点,下面呢,我们来跟大家讲一下呢,这个机器指令的一个寻址方式的寻址方式,我们这里头呢,这个第三章的主要内容呢,就是说一个是讲指令的寻址方式,第二个呢就是它的3.2的时候呢,讲一下是什么呢?机器语言的这个指令,这个机器语言指令的概况,这是什么意思呢?我前面跟大家说的一条机器指令通常六到七个点吗?也就是说你拿会员里面写了一条指令,我给它翻译成机器码的形式是什么形式呢?就在这3.2讲这三点的指令系统呢,这些东西呢,就是一些具体的指令呢。就像你那个学习颜色啊,加法指令怎么写乘法指令怎么写吧,等等,这个逻辑表达式怎么写就像有点类似于那个东西,真的在指令系统里头讲这里的第一个方式,第一个里头呢,它是最基本的内容,要寻址方式就是说,这个操作数在内存里头,你怎么告诉他需要去找去,你必须要边一种合适的方式都是别人编好的,你只要他学习他就行了,让他学习他就行了,前面这里要学习的呢,有什么问题呢?要学习,他不是独立的,他别和指令联系起来学。

而你的指令还没学呢,怎么办呢,他就已经讲这个寻址方式的时候呢,都以那个比较简单的指令这样一个简单的赋值指令呢,这些呢,不一定呢,来解释的,下面我们来看啊,这个寻址方式与数据有关的寻址方式呢,主要是这么几种,那么,其中那种我们现在跟大家单独的系统的给大家看看完之后呢,然后我们总结一下呢,教大家怎么来记这个东西,这个东西呢,刚开始看出来很麻烦,很麻烦的呢,我们讲完之后再归纳总结一下之后呢,大家呢,可以找到呢,这个是合适的呢,具体方式,首先我们看一下这个立即寻址方式来看之前呢,大家要带一个什么问题呢?就是我现在要解决的问题,大家看书的时候一定要带着什么样的问题,就刚才看,就像前面讲的,第一张和第二张就那几个重点知识点,你刚才我说的几个重点掌握别人的一个作一般了解就行了,当在我们这儿讲寻址方式的时候呢,你要抓住了什么问题的核心问题是什么呢?现在的核心问题就是想告诉我,想通过某一种这个编码的方式,或者是通过一种就是写规定某一种格式,让cpu呢,能很快地在我的存储器里头找到存储器。

或者是呢,在计算器里头,在计算器里找到很简单,我们三点的时候,他会看到直接在计算器里找数据的话,那个编码方式很简单,现在核心问题你就抓住一个是什么呢?怎么通过某一种指令格式来让cpu很快到内存里把这个给我揪出来,或者是呢,很快的,Cpu上内存里头写一个数据吧,你有可能算了,结果快写到内存里头去了呢,QQ往哪写呢?是你告诉他地址啊,所以我们现在问题就是什么呢?就是我们核心问题是什么呢?就是通过哪一种指令格式能让cpu很快的确定内存的某一个单元,就是说你想,比如说下面给大家举个例子。我想到一个酒店里找一个人是吧,找一个人啊,我要以什么最快的方式能取得他的房间号儿呢,是啊,这里有很多方式,有很多方式,所以说我们这里的时候讲的问题呢,就来讲这个问题,我怎么确定那个客人的房间号儿就做这个工作对不对?下面来看,第一种他称为立即寻址方式,什么叫立即寻址方式,大家看到这个立即寻址方式,就是说这个地方可能来的比较快,是因为这个字面含义大家可以体现出来。

逆境就是很快的意思吧,很快我们首先来看一下它,这个怎么个快法呢?他这个操作数也是我要加工的数据对象,他直接存放在指令当中啊,这个大家可能就是刚开始就业的问题,而你前面不是说大量的数据都在我的内存当中,还有一部分在哪儿呢?还有部分是什么呢?在我们的这个QQ的这个计算器里放着哈进行投放,但实际上呢,还有一部分呢,是什么呢?有一部分比较特殊,这个数据呢,他直接更改指令,这个指令为指令是什么?就当是机器指令,就是机器指令,就是机器,就是ID文件中编写的程序,生成exe文件,编一条代码就加载到内存当中。内置当中这个可执行文件都在里头,我们前面讲过,大家不知道有没有放在代码段,全是一条条可执行的机器码,这个是什么呢?他这个操作数呢,就是你要处理的数据呢,直接放在这个指令当中是什么意思呢?这个数据啊,之前跟大家讲这段代码段数据段,还有我们说的通常的数据呢数据,而且这个数据呢,数据呢,在整理整理就是在CS段里头,这种情况是什么呢?适合于那个数据呢,就是说比较少,一般的通常都是常量数据。

就像大家什么叫常量数据呢,大家吸引当中呢,学过比如说吸引力的话,这个定的这个整形变量是不是整天你的整理的话这个时候有个代码是什么呢?JX赋一个常量值,比如说这个酒是大家有一个整型变量,整型变量,X这个酒,这个酒大家会是什么东西啊?就整它是整形,因为这个X是整形的话,这个酒呢是什么呢?是一个整型的常量,是不是这个整型的常量这种情况下呢,是什么呢?这个操作数呢,直接放在整个指令当中呢,通常是何意是什么呢?就是那些常亮那些长直的时候呢,放的,但是这样的数据一般都比较少。比较少比较少,这种情况的数,寻址的方式呢,它的操作数呢,也是要加工的,数据对象呢,直接在我的指令里头放着,也就是放着我的断码儿里头,它是呢,紧跟着这个操作码里头的紧跟着操作码是什么意思就紧跟着这个就是你要执行什么操作的那个编码的那个机器码儿后面的机器码儿,后面儿这块儿有个这块儿有个示意图,假如说啊,我这块儿一条指令就是现在我断就断的操作空间,那现在呢,一条指令一条指令。

这个指令的下一条下一个字眼,或者说下一个字是什么呢?他紧跟着呢,就是仓库,他跟着他紧跟着,他呢,这种情况大家可以想象一下,这是来的比较快,这事处理的比较快,所以呢,他成为敌方是为什么呢?这个比较快,因为这个时候cpu哈他通过我们说了,前面讲过cpu要取出一条指令出来执行的话,他必须要指令这个指令它放在那也是放在内存里的哈,放在内存代码对前面的把前面的内容,大家回顾一下cpu的时候,要把这条指令哈,把内存代码当中的某条指令取出来,执行的话,大家必须要知道这个指令的哪几个参数,大家有没影响。他必须得知道这条指令哪几个参数,一个指令代码首先要知道这段,所以他必须得知道在哪段,因为我指定的小段,所以他必须要知道CS是吧,必须得知道CS你光知道段之后,那这个时候这条这段这么长啊,那这个代码就是在这个段位还是中间还是末尾在哪这个偏移量你才知道是不是大家有一个批量是谁决定的IP是不是指令指针寄存器大家有没有用呢?

上次跟大家提到取出一条指令,需要知道哪两个只能CS,这个IP地址是不是就是代码段寄存器的值和指令指针寄存器IP的值需要这两个只能给他确定,有了这两个值,确定了这个指令之后再确定操作数呢,很快就给他取出来呢,紧跟着他的吧,是不是比如说我们先往下走一步就到了是不是就找到他的地址了?所以这种情况呢,很快呢,怎么操作呢?可以取出来,这种方式我们为立即寻址方式呢,我给大家举个例子就行了,他说他这个操作呢,他作为指令的一部分呢,放在代码段里头,这种操作呢,我们称为立即数粒数呢,通常呢,就是把胃给16位。也就是说什么样的技术呢,也就说这个药当前处理的这个操作呢,我们称为激素,它通常可以呢,是什么呢?可以是一个字节,也可以是一个字一个字儿,立即寻址方式呢,也是这种寻址方式呢,他们通常是用来表示常数,或者叫常亮都行,他经常用呢给寄存器赋值,这是它最大的用途,一般来说,就主要是用哪一个寄存器赋初值就相当于什么呢,这种方式有点像大家的吸引当中给你定义好的变量,赋初值就像这种方式呢,这种方式呢,他有个强调是什么呢?

这是X,你把一个变量X的值赋给一个长久,那你理解不上去是不是错了,是不是所以呢,这块儿呢,就这个意思知道就行。

错了是吧,所以呢,这个呢,就这个例子大家知道就行,下面举一个例子,而在这个举个例子之前,我先跟大家解释一下是什么呢?在希芸啊,你是这么写哈的复制操作,但我这次通过这个用他的抽象数据模型给他描述出来,但你的心一个写是这么写的,是不是我给她抽奖呢,这个钱的方式,这种方式这种好了,那这个时候呢,我给大家举一个概念是什么呢?或者指令符或者助记符是什么呢?在汇编里头呢,这个复制操作呢,它有一个专门的助记符,跟他对应的叫什么呢?就是英文单词是什么单词呢?她用这个木呢,就是来表示呢,这个像我们说鑫源你这个大学的这个,我们这个整块儿的复制操作M这个呢,比如说把玖富的X里头去,就这么操作,怎么操作呢?我们这里呢,现在先不说你这个语法合不合适和你正不正确,你先直接告诉你呢,这个复制操作这条指令呢,在我会员里头呢,使用这个指令的描述的这个东西,大家不要问,为什么这么讲呢,不要问为什么,是不是这个就是人家定义了这个定义好的呢,复制操作用MV来这么定义的。

好了,下面他举了个例子呢,木呢,这是一条哎,这条指令这个指令呢,是一条这个会员指令,这也是我们会员的一个合法的指令,这个指令呢是什么呢?执行的操作呢,是复制操作木这条指令机器呢,再进行编译的时候或者进行会员的时候呢,它有扫描器扫描,用扫描一个扫描,这个字符是SO第三个扫一扫MV哦,知道了,后面一个空格就知道啊,后面他就知道这是个什么东西呢,空格间隔的话他知道啊这个关键词啊,当前执行什么操作呢?所以这个时候直接去查表去了。比如我们这个表,这个表里头木的单词订货,这个数据肯定是加法操作啊,定的是复制操作那么复杂,操作机器码是多少呢?它就翻译过来了,比如我建议你这个表是不是我建议这个表是什么东西呢?这个表里头木啊,肯定是什么呢?比如说在这个叫名称,第二个机器码,比如我就打个比方吧,1001,就比如说打个比方啊,这时候呢,她用的木就马上定的二进制编码是什么呢?101表示什么呢?我用101这个编码来表示复制操作。

——————————————————————————————————————————

操作这样操作的话呢,很简单,把源操作数取出来,放到目的操作数就完事儿了,是不是那cpu就是一个读一个写就完事儿了,是不是就快完成了就不需要中间计算,就是现在这个时候原操作数呢,是什么呢?这个我这个技术呢,就我们从技术是不是原操作数目的操作数呢,就是大家用的什么呢用的这个计算器,这个计算器呢,叫AL计算器LG大家认识就是我们ax寄存器的就是cpu的工作寄存器X数据寄存器ax的什么样的把位是不是啊当时跟大家讲的吗?那cpu的那些计算器里头X光数据计算器是XBXGXDX。这四个技能他是16位的16位,但是呢,它也可以当备用药,分高八位和低八位高八位呢,就是HDHDHDH是不是就能取一个英文字母的高的那个首字母H是八的八位呢,就取英文单词的那个L的那个首次将AR,那你这里头呢,你看你这块儿比如说用X也行,要不aa也行,假如说你这个是不需要你看看,你出的数据把握就构成了,那你就是用R就行。

————————————————————————————————————————

这个呢,就是说好了,下面来看一下这个题目呢,VR5他指的是复制操作是什么意思呢?什么让你来看你是你自己想,因为看到木这种复杂的你就可以猜,就猜到是什么含义呢,机器人就把我放到寄存器是VR的,就是X寄存器的第八位就是大家注意啊,这个时候呢,就会变成,其实很容易出问题,因为他经常用到寄存器,详细的VR来就可以当成我们刚才说的那个眼镜当成变量X,是不是把cpu的那几个工作寄存器你都可以当成什么呢?当成变量用就把我们送到变量AR呢。所以我会给你们取个名儿叫计算器是吧,VR放在里面,那时候大家想一下,你把这个放到VR里头来了,放到VX寄存器的,把未来的这个VX寄存器的高八位,大家想一下什么状况高位是什么状况,高把位保持不变是吧,这时你便成了就很重要了,所以呢,我现在还没上机之前呢,跟大家说这个问题,跟大家提一下有个印象,到时候上机的时候变成这个注意了是吧,然后我是把VR,然后呢,我们来付的。

VR游戏的时候VS系统给他写出来是这个VS计算器呢,是分为高八位和低八位都写出来,我就开始写吧,就是这个味,这个ID把位高位和低位VS76,那你把这五份的吧,VSVVS的位置呢,并没有保持不变,没有保持不变,假如你下面还有程序,下面呢,有一个代码,你想怎么整个代码是怎么回事呢?你觉得这个事儿哎,你说我刚才把我放到VS里出来了吗?现在呢,想做的东西,你比如说做加法运算是什么呢?先做个五加八是吧回家吧,假如说这个吧呢,我们比如说这个bug已经是在哪个里头呢。这个已经在我DS里头,怎么来的你就不用管了,就里头只能是吧,我们现在写的计算器呢,是几内容呢,就加个括号就行了,加括号就表示它的内容是多少好了,那你这个时候你接下来的问题你想做什么?你说我把我放到VS里头去了,然后呢B8呢,也是在我的这个DS里头,那我现在想做呢,A5加八,这个预算现在这个时候想做五加八加五加八呢,我怎么办呢?用他们的变量是吧VS加BS,我就写,不严格,我就这么写。

就这么写就这么写,那这时候大家看一下,这个时候X加BX只能得到13BX是没话说了是吧,能不能吧是吧,那这个时候他俩家的可能等于三,比如说这个完整的全部写出来,你就看这个思想,大家可能等于三,可能等于三,但是很大情况,很多情况不能等于三,能不能等于三?这个X的值是多少了,是吧,这个全是零的话,那好说他结果却恰好是等于三,但是很多情况下,你知道你上次借你的钱还有程序代码的程序代码很可能就要XJX那个最后。他那个到时候S的到这一步说,我去做是不是啊?所以这个价格肯定不一定是三,不一定是13的时候有问题,那有的同学呢,就是就好说了,有同学说那么多OK,这条指令之前把X的值个钱不就得了,比如说要摸摸是不是H呢,这个名儿就得了,是不是就不行,轻一点,要是要去的话带也行,不带也行,都一样,其实都一样,那你这么做一下事情好了,那现在呢,假如说这种情况呢。

你这个妇女呢,假如这个父母呢,大家就说我们前面讲的是一个为了扩展的问题,假如你这个父母的话,或者说假如我们等着你呢,就是说看你们,就是我们,假如这是那个蓝色是1014为主啊101呢,是二零的编码的机枪二维码也行,开着开着你家这边儿就行,这一看就是不满,所以很想看这个技术是负数,是大家看一下是不是啊?说这个位置一分享一个负数,那现在这个负责,那你现在仍然吧作家。就是啊,你这是发高八位清零,这是大家的结果,还能不能正确呢?大家看一下这个结果还不能正确,不能这么一家完了之后你这么高吧,170的话,再加上这个值的话,再加一个吧,你本来是想做你的原因,想做一个负数和一个证,一个证吧的一个加法运算,是不是啊?但是你这么170之后,最后变成什么预算呢?大家看一下把高位全部清零这个字X里头的内容就变成正数了,大家想是不是啊?

这是什么意思呢?大家看看,你把我全部清理这个ZX里头的内容就变成一个正数了,大家想是不是就变成一个这块不一定是政府这块,给他换一下多少就行了是吧,先不用管,这个复试肯定是个副职,就用这块,肯定是这块先不用管了,这块儿就这么多是多少就多少,肯定是看中了,这肯定是负数,肯定是负数,这块儿给他扣。肯定是一个复数,用法是多少你不用管,肯定是负数的原因,做一个负数,一个正数相加,但是呢,你这块儿一把为七年,所以这个时候这个字呢,继续看啊,这个字你未来做预算是吧,S最高一个显示帧数就变成两个整数的运算的结果肯定不对的原因是一个负数,一个正数加法,现在被你一七年之后变成一个什么东西呢?这两个整数加法运算的结果肯定不对,这种情况通过这种方式来处理的话肯定是不行,因为你不知道这个立即数究竟是正还是负,假如你知道他是正是负的话呢。

符号位扩展;

什么好处哎,大家假如我就知道他是负数的话,还用这种方式来处理的话,我们直接把改就行了,八个名额给高把位改成是什么东西啊?改成八个一不就得了吗?是不是改成八个的话我们就得挨得了是不是要改成八为什么这么改就对了?这就相当于这个负数,一个八位的复数进行这个符号扩展扩展到16位是不是啊面料扩展大家有印象八个负数扩展到更高位的八个八位的字节数扩展到16位是怎么拓展呢?就看你最高一层,21是8468041号吧,衣服就完事儿,不是这个呢,希望大家注意这样的。

呢屏操作项目AR5呢就指令执行之后呢,VX07X707的第八位呢,就变成了15了,下面呢,它有一个字,是用的是X70X等于负指令,弧形的木VS3064303064呢,这个16进制的数呢,放到X0这个数放到VS7070的时候,希望大家注意啊,这是一个字,是86位六位的放是怎么放呢?他把这个字的第八位64H呢,放到VR里头去,然后三零儿放到SD,这块儿有个示意图示意图指令执行后,Ax寄存器的内容。变成3064SD的内容呢,就是个括号儿,括起来就行了,这块儿有个示意图,大家看一看,这是一个存储器哈存储器,但是话存储器画的是我的代码这块有几个字段,这块儿有好多指令啊,其中有一条指令是什么呢?就描述这个赋值指令这呢,这一格表示一个自己啊,一个表示一个存储单元,一个存储单元,也就是另一个自己这个字体呢,他描述的这个复制指令,我们03:20来讲就复制指令的机器码是什么,这块儿用公平来描述了,没有把它的机器码画出来,画出来也看不明白,到三点的时候再去看。

你再看1P,你知道屁呢,是这种表示这个目录操作的目录操作的,然后呢,你看这个立即数364就紧跟着这个指令的指令,这个指令的,因为我的这个ICS和IP能够把这个指令唯一的位置给确定这364的位置呢,就很简单,马上就能确定确定确定了,然后就取出来,取出来之后呢三零放在HD位置,第二次放在他的为大家下课休息。