00:00
汇编语言了,就是我们这个说汇编语言很牛逼很牛逼,是不是终于轮到什么呀,轮到我们去手写个汇编语言了,那我们先把这个代码读一遍啊,读一遍那第一句话我们现在能不能读懂啊。啊,能读懂了,好了,那这个这句话能读懂吗?能读懂那这一串内容我们先不用看这个能读懂吗?能读懂这百面D,咱前面给大家演示了,是一个占位符,是不是占哪个位呢?占C这个位C是个什么?C是个变量是不是?然后瑞恨那这几句话我们都读懂了,那看下中间代码写的内容,我定了什么?这里面定义了整形变量ABC,呃,ABC称为什么变量的这个名称是不是啊,变量名称ABC3个变量。然后这里面写的什么杠杠asm,我们之前前面跟大家说了,我说这个叫什么,叫那个是汇编,叫叫as什么什么M那个东西,我说这个缩写就是asm,大家想不想起来之前说那话啊,这是说过别说没说过啊,这里面是几个杠啊,是俩杠看到了吧啊俩杠,杠杠SM,然后这个括号括起来写了一些什么,写了一些这个代码,这个代码就成为什么汇编源代码,这是汇编源代码和我们个高级源代码结合使用的一个方式啊,给大家演示一下,我们打开什么,打开我们这个。
01:13
呃,VS啊,等我关掉重新打开吧,我在咱们今天那个0303里面去写下代码啊。呃,D03,这是我们今年新建项目。呃,然后之前应该有个文件吧,TEST401,咱们写什么写hello word吧,呃,因为这个程序中只能有一个什么呀,有一个主管数,所以说我把这个man给他,给他怎么样换个其他名字,是不是这样情况下就是再写一个带主函数就可以了吧?嗯,好,那我们知知道一下行。零二.c。嗯,写一下代码井号inlu。STDIO.h这是第一句int类型min括号括起来写一个Y代表不需要传值,Return一个零。
02:03
这是标准的这个格式啊,写完了,那定义三个变量,这个变量什么类型,整形的int类型整形变量A,然后是int类型的b int类型的C啊那我们先先怎么先写个高聚元,因为高聚元大家能可能看懂啊,我给这什么这三个值,这三个是变量,是不是起完名字的变量,给它赋一个值,初始值A等于十。B等于20。C等于A加B,那你都知道了,这个是C等于多少啊?30是不是,我们可以打印一下这个值啊叫然后是2%,然后是占位符是百分号D是不是?答印的值是谁啊?答的值是C,然后在这里面加个斜杠代表啥意思啊,换行,那我整个代码写完了,那我们看一下结果是什么样的啊,调试开始执行。啊,打印的结果为30,是不是我们想要的结果啊,这是我们通过高级言去写的这个什么定义了三个变量,给变量赋值,然后进行,呃,这个什么就是运算符操作吧,这个加是什么?加号运算符是不是,然后这个等号是复值运算符给了值给谁给这个C,然后再把C打印出来,这是通过高级言去写的,当然我们这个写完高级语言之后,我们也可以通过程序中去查看我们写的是不是汇编语言,我们加个断点,在哪加断点的看一下啊,这在这个打印这行我加了一个什么,加了个断点,或者再写一行叫。
03:31
Get char啊这句话什么意思,就是让程序先停在那个窗口界面往里输入字符的一个,你先不需要管啊,你就是我知道这个东西,行,你看一下我点击这个部分啊,就这块区域看到了吧,不是点击123456789这个区域,而它前面这个区域这是什么,加了一个什么。断点,我们这红色点称为断点,一般情况下断点是作为什么用的,作为调试用的啊,调试用的加断点之后,我们选择调试中的哪个开始调试,是不是调调试。
04:07
在调试的过程中之后这个这个点会怎么会卡在这儿吧,呃,会卡在这儿,卡在这之后我们选择这个工具,然后中的诶调试啊调试中的这个窗口看到了吧,我调试,然后窗口在窗口中选择什么,选择这个。返回编看到了吧,一点返回编,诶它就是停在哪行,停在这get差那行了,看到了吧,那他之前的代码我们看一下之前代码就是我们定义的这些值的代码是不是都有了吧,比如说第一个这个定义ABC,然后给这个A值的这行代码,我们看下是什么操作啊,这是。OV。然后是这个你先不考虑啊,然后这是一个什么,这是一个。啊,变量,呃,变量A,那你前面就知道啥意思了,是定义一个什么变型类型变量啊。整形变量是不是,整形变量A是不是,然后给AC里面存值了,存多少啊?你看当我鼠标放上去这个A0代表多少值啊,十这个A代表是多少进制的,是16进制的啊,16进制一到十是用正常,呃,不是一到九是用正呃,零到九是用正常数字来表示,十到15是用A到F来表示,所以说十的话就是什么?就是这个A看到了吧,鼠标放上去A,那将A将什么,将十这个值移动到哪啊?
05:21
A里面去是不是啊,放到这里面去,这是第一步,那第二步是什么?第二步B等于20是什么?将14,这个14是多少,14是这个16进制中14,然后转换十进制就变成多少啊,20就20,移动到什么啊?移动到这个B里面去是不是,然后我们就做了一个C等于A加B,那你看它这个做了几步操作啊,看一下到这儿为止啊,都是他的操作。Ex是啥呀?是将是。把移动到器中是不是,然后然后这俩器做一个什么操作?A是操作吧,这俩器中的值放在一起了,你看鼠标上去是不是也能也能显示出这个东西啊,但也无所谓啊,加完一起之后,然后怎么样再移动到一个什么。
06:13
再移动到这个A这里面去,是不是啊,你看这里面是ex是放了一个什么,放了一个。是EA,然后把E值个里面放在这个A里面去了吧,然后再将A里面值放在什么,放在这个ES里面去,再将E值放在谁里面去了,C里面去了,那这样情况是不是我们就暂时可以理解能读懂了吧?那我看一下,再看一下什么,再看一下我们这个原源代码中的这个,你看做什么操作了,呃将三移动给谁啊,移动给A,将四移动给谁啊B将A移动给什么ex器中是不是啊,然后将B,呃是和这个净器中的东西怎么相加,是不是将结果是放在哪个放在前面这里面了吧啊然后把这个计器里面只是在给谁啊给C,那这样就完成了一个操作,就什么就是。
07:09
呃,将将A等于三,B等于四,然后C等于几啊,A加A加B是等于七啊,那我们看一下这个程序就是这样的一个结果,那我们已经分析完了,那分析完之后,那我们去写一个什么,写一个的这个方式。看一下啊。把这个代码先给它注销掉啊,这个注释取消,取消注释是什么,我再点一下是不是取消了啊,怎么看的呢?你一定要注意一下,一定是在调试状态下看一下,在调试状态下选择呃开始调试,调试之后才有这个窗口,看一下窗口才能选择这个东西啊,要不然选择不了啊啊,我一会再给你们写笔记上啊反编译啊就有了。这个我按钮叫什么停止调试吧,是不是,或者你选择这个里面有什么有一个停止调试,看到了吧,啊把你这个程序暂停掉。好给他这个先掉,那我们去弄一下啊。
08:00
呃,三个变量写完之后,我们把这个代码注销掉,看一下注销掉是用什么注销的快捷键,是不是跟大家说一下这个快捷键是什么,是这个CTRL加K是注销u ctrl加加啊是这个取消注释,是K取消注释,KC注释了,那当然你有什么有这个快捷方式,是不是来给大家演示一下,是不是在这儿呢?看一下取消注释一点没了,然后选择上,然后一点就注释了,是不是后面咱再说这个东西啊,咱们再写一个什么写一个。会。编呃语言呃会员代码吧,会员代码。注意下这两个杠杠啊,就是两个杠杠啊,As是不是,然后是一对括号括起来,注意一下咱们这个大括号都是怎么成对出现的,知道吧,那成对出现的,那写下代码是什么?是OV,然后是什么是A逗号十啊33也销啊,咱们用那个程序中的这里面需要加分号吗?
09:04
需要加分号吗?那我们看一下啊,这里面呃,这个不需要加分号啊,看一下啊,那它这没有像咱们说依据程序代码写完之后加个分号啊,没有这习惯啊,然后是Mo VB是四,那这是赋值操作吧,那然后是做一个操作,什么操作是呃呃是艾德B吗?木还是木,木谁呀?木是EAX,然后木的谁呀,木是A。来这个三号加错了啊,等我这个退格一下啊。然后下面什么,下面是这个ADD,然后谁啊是这个EAX和BA,就是先把这个A放到进行器中,再把B放在进程之中,然后把这个呃放开一下,这样就好好看了,好然后呢,然后再再把什么呀,再把这个OVC,把谁的东西都用给谁啊AX那这样这样情况下怎么的,就是把这个代码我们整体的写完了啊,格式对齐一下。
10:07
写完之后,那我们这里面有没有值啊,打印一下是不是就能看到了,我们先打印一下什么PTF。A等于百分号B,然后斜杠N逗号一个A。然后是。B等于百分之D然后这是什么呀?B然后下面是什么是。C。等于百分号C啊,这代码复制这快捷键一会儿给大家重新讲一遍啊,不用着急,那好,那我运行一下程序,看一下有没有问题,这里面就不再调试了啊,选择开始执行就可以了,开始执行。诶。都出现错误了。不是没分,看哪步穿错了啊。19座,19座没事,我看一下找一下啊。我们看一下这这里面这个操作啊是。
11:07
我看一下这这里面出现这个问题是同间导入了,我看一下这里面是OV3和四。然后是一诺中。啊,这里面等我修改一下啊,等下修改一下,这里面选择64了之前啊,我再调调试回来啊,这里面之前选择64了,我这里面这个ex和这个什么,和这个ex以及这个ex都是什么呀,32位的是不是,这里面当然选择64是不是出现错误了吧,选择调试开始执行。看这里面代码写的是没有问题吧,只是这个我们选择什吧,选择这个平台出现问题了,这里面打印出A等于三,B等于四,C等于七是不是,那这三个值是不是都出都出现了,这是我们写的一个什么简单的一个汇编源代码啊,那你想要难的汇编源代码,你可以写完代码之后,你自己选择调试中的窗口,你看正常中的调试窗口是什么样的,啥没有是不是。你只有在运行期间之后,你看点一下这个东西get叉,这东西你可以不用写啊,这东西只是为了我加断点方便使用的啊嗯,所以说调试,然后选择开始调试,这是第一步。
12:06
然后选择这里面什么,这里面调试中的窗口。调试窗口,然后选择返回编啊,这样才能把这个代码出来,那那我们整理一下这个记在笔记中。啊,这里面应该记两块笔记吧,第五块我们需要我们做什么了,做的是呃,C语言源码编译的过程,是不是记下笔记做啥操作了,说一下。呃,是C。语言。呃,是编译过程。编译过程,因为那个时间那个视频录40多分钟,我就没继续录啊,第一步是什么,是什么操作,什么预处理,预处理做了哪些操作,第一点操作是做啥,那我们这样写啊,写个一括号,一括号那第一点做啥操作,红定义展开是不是同定义展开,这是第一步,那呃第二步我们做什么操作,头文件展开是不是头文件。
13:04
头文件展开。然后是什么,第三步是什么。呃,是删除注释,删除注释,然后第四步呢。是条件编译。条件编译它的执行代码是什么样的,一个一个代码是格式,就GCC那个格式什么呀?GCC,然后是杠大大E吧,啊杠大E然后是A点。C,然后是杠oa.i这个A就是属于一个什么临时的这个,呃,就是变量嘛,你知道一下行这格式,这是第一步,然后第二步是什么,第二步是。第二步是编啊编做哪些操作啊,我们看一下。嗯,第一步是。检查语法。
14:05
检查语法,第二个做操作什么。等一下,这好像这个写错了。转化成。汇编语言,那需要这个格式,什么样的格式?GCC杠大S,然后是a.I然后是杠O。a.S这它的格式第三步做的处理是什么?是这个。呃,汇编啊,汇编汇编啊。汇编做的操作就就有几个。呃是将呃汇编语言,将汇编语言转。
15:00
化成机器语言啊好,那格式怎么样的格式。GCC杠小C,然后是a.S-oa.o啊这个过程第四步是链接链。Yeah。做的操作是做什么,做什么操作了是。呃,是。将呃是都做啥操作了。我看一下啊。就是练金库吗?黄洋。链接库文件吗?这样是呃,依赖库文件,把库文件链接之后变成可执行文件将嗯。库文件链接。呃,变成可执行文件。
16:00
这是他的。四步格式是什么样的?GC,然后是A点。oa.o然后是杠oa.exe啊啊,这是它的格式,能把它这个table一下,这个是转换一下。好,那我们这个第五步是去给他看一下这个编译的过程,那第六咱们做啥操作,第六是这个汇编这块吧,呃是汇编以及这个简单的代码调试啊,代码调试这一块啊,那这里面说一下像什么计算器那个略过了啊,咱就不讲了啊,这是汇编语言应该怎么怎么去写呢,组织下语言。把例子直接复制上去,那多无聊啊,是不是啊,呃,这个叫什么叫啊汇编啊,就是汇编原则了,汇编源。汇编语言,那这个我们是怎么着,就是了解汇编语言吧,第一步我们都是做什么操作是呃,先写一个什么正常的代码是不是,然后再去看这个汇编语言,先把这前面这这一块内容说完,然后再去写汇编语言那个说完啊第一步是这个,呃,新建项目咱就不说了啊,就是一步略过了,新建项目创建文件,这就这就怎么着,这就是第一步啊,然后是。
17:18
呃,写。C语言的源代码吧,是C。啊,语言源代码啊执行。执行调试啊,调试执行啊,是调试执行加断点怎么加的,还会吗?是不是在这这个这停止啊,啊停止之后。Oh no。打开东西太多了,就是会出现这个问题。是不是在这个这个这个这个这个叫什么叫特什么栏上啊,这叫。怎么说呢,这这个这个词比较好啊。啊,就是加加加端点就完事了,是不是咱们你知道在哪加吧,是不是数学C语言,然后是C语言代码是加。
18:02
添加断点啊,添加断点,然后是调试执行啊,调试执行的时候会在什么呀?会在执行时这个界面会怎么的,会卡住啊,不是这个卡住啊。是卡到那个黑窗口,那界面是不是,然后会显这这里面显示这个界面啊,哎呀。好,那咱们自己自己再先总结完,估计他就他就能动起来了,这程序会。停止。停止在断点处,哪是断点,断点处啊是。就是那红点处吧,我一个程序可以加多个红点啊,而且这里面还有一些调试的一些,诶好了,那我再来一遍啊,看一下他能不能给我执行一下。而且这里面你看我这里面调试的时候有很多步骤,调试有逐句执行,看到了吧,有逐过程执行,还有什么跳出啊执行,或者是怎么是显示下调语句,它也能执行啊,然后这是什么,这是停止是不是,那这是重新启动啊,看到了这是一些命令啊。
19:05
然后是程序会停止在断点处。啊,断点处,然后在哪个工具栏中啊,在这个调试工具栏中窗口是不是,然后它在这个列表中选择什么反汇编是不是啊在。调试窗口,呃,不是调调,这是菜单栏啊,在调试菜单栏中选择。窗口。在列表中选择什么呀,选择反馈,反馈编查呃。查看。汇编。把源代码。啊,第四步可以手写原手写会员源代码了吧,来复制一下就完事了啊。那就这个啊,汇编源代码,把这句话也复制上来啊。
20:00
是不是这这四步就可以了,然后我给你们整理一下格式就可以了啊,仿宋的,然后十十几呢14。对,这微软也黑了。啊,这是我们这这四部啊,这个可以大家测试一下,我把这波。
我来说两句