00:00
开始录制啊,然后今天咱们还是讲汇编啊,然后主要有这个要从基础一点的地方开始讲啊,今天咱们要来讲一下这个进制和胃的问题,然后再往后讲,因为后边呢,今天刚好这个呃,需要用到啊。进制的问题,禁制这个问题呢,其实相对而言还是比较好讲的啊,但是后边这个位呢,稍微有点这个难以理解啊,但是也不是多难,毕竟都是学计算机的,这玩意儿还是好弄的,那首先呢就是禁制,那禁制这个玩意儿呢,我们在日常生活中啊用到的啊,从这个零一直到九这种呢,它实际上就是十进制啊,那我先用一个别的东西吧,文本写这种东西比较好看啊,我们用文本来。好,然后呢,我们首先是这个进制,那我们除了进这个我们日常生活中的这个十进制之外呢,我们其实呢,还有一些其他的进制,就包括什么呢?包括我们这个计算机最基础的啊,我们前面在讲这个电路的时候讲过啊,就是开和关之间,它就有两个状态啊,那这两个状态呢,刚好可以可以可以有一个零,一个一啊,那两个状态就零和一嘛,那就表示了一个二啊,那所以说呢,就是二进制,然后呢,除了十进制和二进制之外呢,它中间呢,还夹了一个八进制,实际上而言呢,八进制用的较少啊,你不了解也无所谓啊,然后呢,我们实际上用的最多的呢,是这三个20和16进制啊,那我们就来说一下他们都有什么啊,以及他们之间啊,应该如何去做一个转换啊,其实呢,早期呢,都是手动转换啊,但是我们现在有了更方便的方式啊,我们可以使用计算机来这个呃,做这个事情。
01:55
嗯,等一下啊,我把录制停一下。好,我们我们接着录啊,然后呢,我们这个二进制呢,就是这个零和一啊,零和一两个数啊,就是我们的二进制,那八进制呢,就是01234567啊零到七就是什么呢?就是我们的这个八进制,然后呢,十进制是什么呢?是0123456789就是十进制,16进制呢,就是012345689AB啊这就是16进制,那么大家可以看到他们有一个共同点啊,就是无论几进制,它都不会属于存在几,什么意思呢?就比如说啊,你有一个二进制,你当零啊和一之后,它不会是二,它会是什么呢?它会是进位的一零,但一零你大家是说一零不就是十嘛啊,它不是十啊,它只是一零啊,是进位后的一零,就是说我们这边啊,它能容纳的是什么?是零和一?
02:58
那两种状态,那零变成一之后,他再想往上加一位,它就变成了什么呢?它就往上进一位啊,第二位变成一,然后这位变成零,然后之后呢,就是我的这一位呢,上上上一位不是一嘛,我再进一位,那零加一啊,因为是二进制,所以零加一还可以得到一个一,那所以说这个时候它就是什么呢?它就是一一,那再往上加呢,也是一样的啊,就是这一位进了一之后,上一位再进一,然后它就变成100啊就这么一计值一直往上进位的这种方式啊,这就是二进制,然后呢,八进制也是啊,八进制呢,它就没有八啊,没有八,八进制七之后呢,就是进位的就是这个幺零,幺零之后呢是幺幺,一直到变成这个幺七之后,就会变成二零啊,就是这么一个区别,那你这个十进制也是一样,十进制大家可能日常中说十都说的比较习惯,但是十进制的十实际上也是不存在的,它是什么?它是幺零啊,是进位之后的幺零,幺零之后呢,它是什么呢?就是进位之后。
03:58
哦,这零啊就可以变成一了啊,然后一直到一九啊,就是19的实际上就是19,然后呢,再进一就变成了二零啊,它实际上是又进了一位,也就是说呢,十进制本身是没有十这个概念的啊,是没有这个十这个概念的,然后16进制呢也是啊,但是16进制呢,因为我们的数字的原因,它没有办法去这个表达到这么高啊,也就是0123456789,然后呢,之后的这个十,11 12 13 14 15,如果你用数字来表达的时候,它会跟后续的有冲突,比如说啊,如果这儿你A你用了十来表示,那么你当F在进位的时候,他这个一零你怎么表示对不对啊,他没有办法表示了,所以说呢,它用数式来表示,这样呢啊,它的十实际上就是A就是十,B就是11 C就是12 D就是13,就是14 F就是15 15之后因为不16进制不存在16,所以造成了啊,这个就是进的概念。
04:58
后呢,我们这个就是常用的这个进制啊,那除了八进制不怎么常用之外呢,我们的二进制,十进制和16进制,在我们的编程这个过程中呢,实际上都是很常用的,很常用的,然后呢,我们这个现在呢,一般情况下呢啊,你正常情况下,你只要不什么考试去啊,你正常情况下用一个计算器就可以了,当然了,如果你是这个一些学校的学生啊,就是也不是大部分学校啊,大部分学校都还好,你如果说是一些比较奇特学校的学生,他们通常情况下呢,会干嘛呢?会让你手写编我论是加script,然用那个H加入,然后实现了一些简单的这个前端的代码,但是你知道用手写这个玩意,首先你不能调试,有时候还会手误,然后有时还记不清它某些函数,所以这东西搞得就跟背英语一样啊,这个进制也是有些学校呢,他考试的时候会让你手动去算它的转换啊,那这个东西就比较恶心人,但是呢,你在正常的工作过程中。
05:58
谁也拦不住你用计算器对不对啊,那这个我们Windows win10自带计算器呢,你可以点到这儿啊,切换各种不样不同不样式的这个计算器版本,像大家正常用到的呢,就是这个标准啊,那我们程序员呢,你可以直接用这个程序员版本的,那你现在这个bin呢,它实际上就是这个二进制,然后O呢是八进制,DEC呢是十进制,然后16制呢,你比如说你在十写了一个十,然后你他啊后你比如说A之后,你再给他加一个七啊,你个七啊,这个七没有什么效果啊,比如说我们来一个D哦,我说E吧,E完之后你看十进制就转成14了啊,然后这个八进制就是16,二进制呢,就是1110啊,就是这么一个过程。
06:42
说完了这个东西之后呢,我们再来说一下胃啊,这个胃。啊,我们知道进制之后呢,我们再来聊一下啊,这个这个概念呢,在我们的这个编程工作中啊,也是非常常见的啊,另外呢,大家看一下这个公平啊,然后呢,我们的助理发了这个我们的这个群号啊,然后有需要这个领取往期视频以及我们的相关工具的啊,可以添加我们的这个群,或者说联系我们小助理直接加好友什么的啊,这都可以啊,然后呢,你们自己加一下,我就接着讲了,然后我们位这个概念是非常重要的啊,因为我们后续有一些这个标记位,比如说这个1FLAG,我们在前面讲这个flag标记位的时候,这个就已经出现了啊,它这个某一,那我们现在来了解一下这个的概念,那大家最常见的我们这个课里边就提到的是什么呢?比如说我们提到的操作系统的,或者说C可以啊么。
07:40
和64位啊,这就是所谓的这个对不对啊,那这个说的是什么呢?这个位实际上而言就是讲的二进制位,那你像是我们这个二进制,每一个位上边啊,这个每一个数它就是一个啊,那这一位上边它只能有两种表达形式,就是零和一,那么你这个啊位数。
08:07
比如说啊,你这个16位,那实际上就是有16个单位可以干嘛呢?可以放置这个位啊,比如说这个是一二三四五六七八九十,11,十二十三十四十五十六,这16个就刚好是一个什么呢?16位啊16位,这就是所谓的16位,那十六三十二位呢,就是什么呢?就这东西翻倍呗,对不对啊,这个东西翻倍啊,这是32位啊,那64位呢,那就是32位再翻一倍呗,那这就是什么呢?这就是64位啊,那我们通常情况下操作系统说的这么多位是什么概念呢?实际上说的是它可可这个寻址的地址长度位啊,你比如说我们在16位的时候啊,那你的地址宽度实际上只有16个一能容纳啊,那你32位呢,就是32个,64位呢,就是64个,那你用一形形容它可能不太这个,呃准确你应该用什么呢?应该是用16个二进制位,32个二进制位和64个二进制位来说。
09:08
啊,就是这么来说啊,它的这些东西,然后呢,我们这个就是它的的这么一个概念,然后呢,我们啊可以在这个计算器上来看一下,比如说我们换成十,这有一个D啊,这个Q就是什么意呢?QD啊就是64的一个啊类型啊,一个类型啊,比如说我们在前面写过的DB啊,那就是什么呢?那就是它的这个比较短的类型,那像Q它就是比较类型,那像这些类型呢,还包括什么呢?我们比较常用的包括我们的这个qor啊,就14位,它可以能容纳二六十四个二进制位啊,这个dor啊,也就是double word啊就是什么呢?就是这个32位啊,32位还有什么呢?就是word word是多少呢?Word是16位,那比它还短的有没有呢?还有啊,我们的这个单位还有这个这个啊,这个是什么呢?这个是八位,然后实际上还有一个啊,一个这个位的表示,但是这个东西呢,在我们的这个语言里是支。
10:08
持的啊,是不支持的,但是呢,你也可以操作啊,就是用未操作来进行操作,但是我们现在还没讲到,今天给大家说一下就是bit bit是移位啊,移位它就是为这个本身啊,本身这个啊,但像我们常用的呢,包括一位八位啊,不是不是一位不存在啊,我们就是常用的就是八位,16位,32位和64位啊,这个是我们常用的位,那这里头呢,也可以给大家讲一个这个常用的一个小知识点啊,然后来告诉大家为什么你家的这个网速跟你想象的不太一样啊,大家呢,就是为什么这个网速跟大家这个想象的不太一样呢,就是因为它这个一位和八位的单位,它的缩写都是B。啊,都是B,你知道吧,那么这个时候运营商就给你这个搞的一个,嗯,偷偷的这个给你搞了一个奇特的概念啊,偷的给你搞了一个奇特的概念,首先呢,我们要知道还有一个这个数据宽度单位啊,就比如说你在文件的时候,你你表示什么呢?就是你这个有1024的啊,1024啊乘以这个,呃,就是1024的这个比特啊贝特啊,就是就这个啊,就这个啊,那乘以这个1024就是什么呢?就是1KB。
11:19
啊,然后呢,再以一零呢,就是么呢,就是B,然后再以102呢,就是什么呢?就是这个GB啊1GB再乘以1024呢,就是这个1TB,然后再上呢,就是什么EB啊什么的,那跟咱关系就不大了,通常咱们这个这个储单也就到这了,那为什么你的网速跟你想象的不一样呢?比如说啊,它形容了你一个1500M啊500M,那它乘出来的这个最高网速啊,应该就是这个占满的情况下,对不对,但是它实际上通常情况下是站不满的情况,为什么呢?因为他说的B不是这个,是这个啊,是一位的这个啊是一位这个,所以说呢,它实际上的速度跟你说的速度差了八倍啊,差了八倍啊,这个是一个小的一个隐身啊,这个没有什么实际意义啊,就给大家简单介绍一下,然后呢,我们接着说啊,接着说我们这个位的概念,那我们了解完它这些基础的这个知识之后,我们就知道啊,以下这些呢,实际上就是汇编里的一些这个变量的一单。
12:19
啊,我们常用的,那么这些常用的呢,通常情况下呢,就是这个有你比如说啊这个啊,就是这个DB,然后呢,这个是D,这个DD。啊,就是这样的啊,这就是我们汇编里的这个呃,变量的一个类型啊,那我们讲完这些例型也讲完了这个位之外啊之后啊,我们现在就了解了啊,他们都能储多大的一个数据空间啊,那比如说啊,你现在啊,用这个计算器,你把它啊弄成一个八位的啊,你点这能给它换成一个八位的,那这个时候它的最大容容储单位是多大呢?你就F到头啊,它就是最大容储单位,但是这里边呢,它是有一个概念呢,就是啊它最大能容纳不就是八个一嘛,但是它有一个符号位的这么一个概念啊,你看现在它的这个十进制为什么是负一呢?是因为你的计算器默认的情况下,它是有符号位的,那这个符号位是什么概念呢?符号位就是你能所占的这些位里边的这个最高位,最高位就是符号位,那么你的最高位如果是零的情况下。
13:35
看呢,它就是一个正数,那如果是这个一的情况下呢,它就是一个负数,那你最大的这个占占这个数呢,它是这个,比如八位,它是最大能容纳八个一,但是这个八个一的情况下,你最高位是一,那它就是一个负数,所以说呢,它刚好就给你显示成什么的呢,负一啊所以说呢,这个时候呢,我们就要出现两种状态,一种呢,叫做有符号数,一种呢叫做无符号数,哎,这我是不是前面讲过呀,我有点忘了,然后呢,这个东西呢,就是用不同的这个形式来表达,你比如说同样是八位,那么正常情况下,如果是无符号数啊,那么它的操作都是什么呢?就是从零至250,呃,255,那如果是负的呢,有有负号数,它最高的那个用了这个符号呢,那怎么办呢?那就是负的128到什么呢?到正的127,那为什么。
14:35
是128~127呢,因为它中间存在一个零啊,所以说呢,他们俩实际上的数是一样的,只不过呢差了一个零,好,那么这就是有符号数和这个无符号数的这么一个概念,那么我们了解完这些东西之后呢,剩下的呢,你就可以去这个自己去这个尝试一下啊,比如说我现在我最大一个数,我把它去了,这不就是这个127嘛,它有负号,最大一百27,负的是这个128嘛,那么你就可以用它来计算一下啊,这种形式来计算一下它的无负号数范围应该是多大啊,无负二数的范围呢,实际上也是这么算的啊,比如说16位,32位,64位啊这种啊,64位通常你就不用算了啊,六位四位实在有点长,有些表达不下了,好,那么我们现在呢,已经了解了和以及变量宽度的问题,那我们现在呢,就回到我们的这个,呃,编程过程中啊。
15:41
稍等啊。我喝口水,战略喝水。
16:10
好,这是咱们上节课写的代码啊,咱们不用动它啊,上一节课之所以下不了断点的原因我也找到了啊,它实际上下断点是没问题的,你只要给它重新生成就行了。重新生成之后啊,你比如说你在这在下一个断点。然后你再运行啊,它就是没有问题的。你看它就断下来了啊,然后断到这儿了啊,然后你比如说你这个F10,你再往下走一步啊,它就弹出来了啊,然后它就断在下一步了啊,然后再走再走,走到这儿它就退出了啊,所以说下断点是没问题,只需要你重新生成啊,这是上节课的一个问题,有重是吗?现在还有吗?
17:10
其他人有重音吗?喂喂喂喂喂喂。好,那就先这么着啊,然后呢,咱们这节课呢,就来讲一些啊这个操作,首先呢,咱们刚才讲完胃了啊,咱们先讲一些关于的基本操作,什么叫关于的基本操作呢?啊,它的基本操作呢,就包括了四项啊这什么呢与非啊还有。
18:09
与。哎呀,这写的这个注释太费劲了,中英文来回切。飞。抑或啊,那这里边呢,其实呢,这个与或抑或应该放一起,然后非应该单独放一个,因为什么呢?因为对于汇编指令而言呢,我们的语是什么呢?语是双操作数啊,就是两个操作数啊,两个操作数的指令啊,这个呢也是啊也是,但是不一样啊,这个呢是这个单操作啊。啊,这些都是这些都是未运算的啊,它其实还有逻辑的那个算,算术和逻辑的区别啊,但是这些都是运算啊,这这个是这个汇编里的这个运算啊。
19:09
好,那基础运算啊,这个微运算呢,其实还有一些左移右移的操作,咱们后续再讲,咱们先说一些基础的,那比如说我现在呢,要给他来写一个这个语操作,那语操作是什么意思呢?首先呢,我们用一个文本啊来给大家介绍。我文本是不是让我关了啊,没有这儿呢啊,比如说啊,我先把这些删了啊,然后呢,我比如说我这有一个文本啊,我这首先第一个数,比如说我放到E了啊,我这有一个这个多呢,是1111啊1111这么一个数,然后我这个E有一个数。然后呢,我现在呢,要进行一个语操作啊,要进行一个操作。那雨操作呢,我们比如说第二个号,第二个数呢,我们,嗯,放一个什么呢,我放一个这个10101010啊这样呢比较好看啊,那我现在呢,给它进行一个运算,这个运算呢,就是语操作,操作就是暗的。
20:08
那么这个按的这个指令啊,要怎么写呢?就是把两个数都写上,中间加这个逗号嘛,这个ES,这就是语操作啊,当然这个也可以是小写的啊,大这个部分大小写啊,然后呢,我们这个里边啊要运算啊,那么现在啊,比如说我把结果随便找一个地方放,那我它是怎么算的呢?与运算两个数啊,就这两个数相对应的啊,相对应的如果说都是一,那结果就是一,比如说我E这一结果就是零,所以依此判断后边的结果就是1010101010101010啊就是这么一个意思,然后呢,如果说我们使用计算器也是可以进行这种运算的,比如说我在二进制里啊,比如说我给他写一下是11111111,这是八位的第一个数,然后我按位给他。
21:08
按什么呢?10101010,然后呢,我给他等一下,你看它的结果就是10101010,跟咱们的运算没有没有区别啊,这就是我们的运算。那么我们写在这个代码里直接写呢,也是类似的操作,首先比如说我们给他了一个E是11111,然后呢,后边加个B,代表它是这个二进制的,然后呢,再给他的ex也一个值,比如说我一个10101010,然后一个B,然后呢,这个时候呢,我对他们俩进行一个操作,E此时刻。啊,我们又重新生成啊。这个不重新生成,它不会自动的重新生成啊,这个比较恶心啊,这就是上次下不了断点那个原因,好,然后呢,我们已经断在这儿了啊,那么首先我们F10单步一下,你可以看到我们的这个呃,EAS已经变成16进制的F了,这边默认都是16进制啊,是现在已经变成F了,也就是说呢,它现在变成了这个二进制的八个一,然后呢,我的E变成了A,就是这个10101010啊,现在呢,运行到这一条了,我现在要执行令了,然后呢,Ex和ex要参与运算,运算完事之后呢,它会把结果放到ex里,然后我们F10你可以看到啊,现在呢,我们的EAX变成AA了啊,那么它的际编。
22:47
还有吗?呃,我讲这一会了,还有吗。
23:03
没啥事了吧,应该。还有啊。还有你不行找我那个要录播或者上上腾讯课堂吧,腾讯课堂没有。嗯,要录播也行,上腾讯课堂也行啊,咱们录播回头也会传。可能主要是啊对,有可能,然后呢,咱们来这个看第二个啊,刚才咱们不是讲了这个语嘛,那我们接下来我们讲货啊,那货的逻辑呢,和这个与的逻辑呢,就不太一样了啊货运算那或运算呢,我们把上三行我们先复制过来啊,它其实类似啊,那我们的指令是什么呢?货的指令就是or。就是货啊,它的操作呢,也是跟刚才一样啊,两个数啊,随便找俩数,然后呢,在里边给它进行一个货运算,那货运算呢,它的区别肯定是主要是在结果上啊,那货运算是什么呢?是任意两一方有一个一,它的结果就是一,也就是说两个一是一,两个这个一个一,一个零它也是一,那所以说它这个结果就是一,那么什么情况下不是一呢?两个零啊,两个零它就不是一啊,那首先呢,我们来看一下啊,我们来用计算器啊来看一下,首先我们比如说我们给他第一个数啊,第一个数还是全是一。
24:16
然后呢,第二个数啊,我按位给它霍一下啊,我是这个呃,10101010啊,那这种情况下,我等于那什么呢?就是八个一,那我刚才验证一下,我刚才说的另一种就是我第一个数是八个一,但是我啊给进行了一下,我第二个数是100000000,然后呢。哎,等一下啊,我看啊不对。啊或嘛有有有一边儿是就行啊,我刚才写错了,我应该这样写1000啊,然后10000,然后呢,比如说我再给他按位这个了一下了一下这个呃零啊,然后111啊,然后呢,是这个1111啊,然后我给他等一下诶诶。
25:03
哎呀,我没没还是没写零啊,我这个人脑子有问题了,已经他应该是这样的,比如说我现在给他在这写上啊,不然我这老忘1110啊,然后呢,是这个0000001啊,这样就行了啊,我这脑子老出问题,第一个11111110啊,这回没错啊,然后我按位给他货或完是零零,呃,不用写零啊,就写一个一就行,然后呢。不对,这个俩还是会变成一啊,那我这样吧,我给他11000啊,这样这才对啊,然后我给他100000000啊,然后这样给他进行一个这个货,诶你看它后最后一个就是零了啊,最后一个就是零了。好,那这个呢,就是换运算,那换运算的这个操作呢,因为刚刚才比较类似啊,我们直接把这个and啊换成or啊,我们就可以直接来测试了,但是呢,还是要重新生成啊,注意重新生成。重新生成之后,我们呃运行运行之后大停在这儿,停在这之后我们在这里啊,他马上运算完之后,结果还会放在ex里,那如果说按照我们预期的结果,它应该是什么呢?我们重新来算一遍啊,就是11111111,然后呢,按位啊或一下我们的这个10101010啊不对。
26:18
这样和的话没什么意义,全是一啊,那我们先算一下全是一这种啊,F10,诶你看它变成FF了,对不对,它全是一,那现在我们给改一下,我们把上面的最后一个也换成零啊,那这样的话它结果就不同了。啊,我还要重新生成啊。11111110啊,然后呢,暗卫。上啊,这个10101010,它的结果就是这个啊,它的结果也就是一啊,十进制的负二也就是一,那现在呢,我们来运行。走走走,诶,你看它是不是是不是对不对啊,跟我们预期的结果是一样的啊,就这种算法啊,就是啊有一面是一啊,当前的有一面是一,它结果就是一啊有这个只有全是零的时候才是零啊,其他的情况下都是一,这就是所谓的或运算,那或运算之后呢,我们是抑或运算啊,也是双超作数,那我们再给他来复或复制一个啊,抑或运算把上面这些啊拿过来。
27:24
抑或运算呢,就是X or啊,它带个货啊来,但是前面是XXE啊,后边是或啊抑或操作啊,然后呢,我们这个抑或操作它的逻辑是怎么样的呢?亦或是不同的是一,相同的是零,什么叫不同的是一,相同的是零呢?呃,比如说我这儿啊有个一,那如果我先这个是一的情况下,它的结果是什么?它的结果是零,那如果说啊这个一和零呢,那它结果是一,那如果说这一位是这个,这一位是零,下边也是零呢。
28:00
呃,那这种情况下就是零啊,然后呢,所以说按这个逻辑,比如后边我都是一啊,那这个我这结果就是这个0000啊,那我们来试一下啊。呃,11011111啊,然后按位按位给他抑或X or,然后呢,是10011111啊,然后等于你看后边是这个六个零,后边是六个零,跟我们是一样的,所以它的逻辑就是什么呢?就是你不同的是一,相同的是零,就记住这一句话就可以了啊,那我们拿回来之后,我们用这个来测试一下,代码来测试一下,我们直接给它改成X or,然后呢,把它数给它改一下啊,给改成我们这边一样的啊。要不然这样直接看不出来呀。好,我们重新商城。
29:04
好,那我们现在重新生成,完事之后呢,我们现在就这个给他进行值啊,值之后你可以看到啊,我们ES是DFEBS是9F,那我们给他计算完事之后呢,它应该是这个1000,也就是结果应该是。那这结果应该是多少啊?应该是64啊,应该是四零啊,那我们来看一下。四零啊,看是不是四零,诶你看结果是四零对不对啊,那这个呢,就是我们的异或操作的一个逻辑,那我们异或操作的逻辑也捋明白之后,那接下来有一个最后的一个逻辑,就是这个非运算啊,逻辑非运算,逻辑非运算呢,跟我们前面的这个不是逻辑啊,这个的一个运算啊。非运算啊,非运算跟前面都不一样,它只有一个操作数,比如说你有一个EXAXEAX呢,那现在呢,比如说我这个值呢,就跟这个是一样的啊,那它的结果是什么呢?就比较有意思啊,它是这样的not啊,Not这什么呢?Not e,这就是进行非运算啊,那非运算我们现在呢,比如说我现在结果上是一,下边就是零,上面是一,下边是零,上面是零,下边就是一,然后上面是一,下边就是零啊那看出逻辑了没有,就是是一就变成零,是零就变成一,它进行了一个取反的这么一个操作啊,那这个东西呢,其实比较简单,我们用不用这个计算器都无所谓啊,我们再试一下11011啊,然后呢,我们按位啊,给它进行一下这个not,诶,你看是不是就变成这个了,跟我们算的是一样的啊,那么我们现在呢,用我们的这个汇编代码也来实现一下啊,我们进行一个not,一个ex。
30:40
重新生成。好,我们运算啊,运算完事之后呢,我们现在呢,就可以来干嘛呢,直接啊给他来这个,呃,F10F10。在F10A,你看它这个结果就变成什么呢?F f20,那这个呢,好像结果跟我们这个上边不一样了,它虽然有个二零,但它前面多了一堆F,这是为什么呢?啊,那这个原因呢,就在于我们前面讲过的一个的原因啊,一个的原因。
31:15
那什么叫的原因呢?就是因为我们现在操作的这些东西啊,你比如说我这个运是E,对,那E我们在前到过A,那么A是十器啊,那16位的通用寄存器就代表着它里边这个能存储这个16个二进制位啊,也就是里头有16个所存啊,16个所存的存在,那我们扩展成32位呢,它呢,就变成了什么呢?搬成了一个32位的通用寄存器,也就是说它里边能容纳32位个二进制位啊,那那我们用这个计算器就可以来简单看一下,我们把它调成word啊,Double word double word呢,你再来看这边,它如果说全满的情况下,我们在这边F给他成全满的情况下,你看它能填充32个二进位的数,那么这种情况下,因为你刚才啊,我们自己刚才这个二进制数,实际上。
32:15
只是一个什么,只是一个八位的数,也就是说我们任意操作,实际上都是在操作这个八位啊,这八位,那所以说你可以看到它直接就是操作是什么是最后的这两个数,这两个数呢,它也是一种单位,称之为什么呢?称之为字节啊字啊,那所以说呢,我们这里呢,还要引入两个长度单位,一个字节,一个叫双字。啊双字啊,那我们这节课呢,不说双字啊,我们就说一下字节,那字节那我们是什么意思呢?就是八位,八位即为一个字节啊,那也就是说呢,我们现在呢,这个里边啊,如果说是一个这个32位的存器里啊,能容纳多少呢?容能容纳四个字节啊,能容纳四个字节,也就是说呢,我们在这边看到的最后这两个数,两个数实际上它有一个个有一个单位叫做一字节啊,一字节或者说叫八位啊都行啊,这就是八位,他所以说呢,这一字节的长度实际上就相当于我们一个这个单位啊,就相当于一个这个单位啊,然后呢,我们现在呢,就能理解了啊这些东西啊,能理解完这些东西之后,你就应该知道为什么刚才前面都会是了,因为你操作的最后八位,但是这32位的通用器前边这24位是真实存在的,所以你在用的时候,它一定会涉及到这32位,那么你这32位啊。
33:43
本身正常情况下,因为你用的时候啊,你用的时候你在取反之前ES前面这几位它全是零啊,所以说呢,它就这被干什么的呢,它就被直接取反成一了,那一在这个16进制表示的时候啊,那四个一是什么呢?四个一就是一个F,所以导致了前三个字节是六个F,我们可以再来看一次啊,来验证我们的猜想,那现在呢,们重新运行啊,运行它断在这了啊,现在呢,我们看啊,E是这么一个数,然我走完D成啊因为什么呢?因我们E了一个,也就导致了他认为什么呢?认为你这个前边这部分应该都是零,因为什么呢?因为你只提供了低位,比如说你给一个数给了一个一,那这个时候你。
34:43
不可能把前边给你纯生乱七八糟的东西,对不对,因为你是以一个32位整个赋值过去的情况来给它竞能用的赋值,所以说它前面会清零,那导致的是什么呢?导致你运行not的时候,你可以看前面这些这个都是零嘛,那你再运行它一定会变成一,那你二进制的变成一,四个一变成一个F,就导致前三个字节都变成了F,之后的一个字节才是二零,这就是他的这个虚反操作的一个原因。
35:16
好,那我们这个呢,就说完了这个取反,然后我看一下啊,看一下今天还有什么东西。嗯,35分钟了,那明天讲吧,明天讲数组啊,本来今天打算把微运算和数组一起讲完的啊,但是时间有点长了啊,那明天讲数组,明天晚上还是八点啊好,然后呢,有那个想要领取一些资料的啊,可以联系咱们的助理,在咱们的那个公屏上他会发出来,然后你可以去加他,然后还有群啊什么的啊,然后可以进一进啊,然后呢,有问题呢,现在可以问一问,没问题呢,我就换人了。
我来说两句