
汇编小白笔记
文章平均质量分 65
仅仅小白笔记而已,不喜勿喷
y6y6y666
这个作者很懒,什么都没留下…
展开
-
vscode中写汇编 以及我所遇到的 File not found解决方法
之前写汇编用的是DOSBOX这个工具和gvim,主要原因是刚接触的时候学长推荐了一个b站的视频,那个视频用的是这款软件,前几天在b站看到一个速成的视频,就进去看了下,发现他用的是vscode先把最近学习的视频链接供上(这里用的是vscod)就自己试着装了下,其实就是一个插件的事。原创 2022-12-24 17:44:49 · 1785 阅读 · 1 评论 -
汇编语言-王爽 笔记(第八章 数据处理的两个基本问题)
1:.数据在啥地方2.数据有多长此书以后定义两个描述性符号:1.reg :寄存器②.a、b、c、d对应h和l2.sreg:段寄存器①d、e、s、c+s(可以巧记为:D+键盘上的esc键);原创 2022-12-24 15:42:41 · 567 阅读 · 0 评论 -
王爽老师汇编语言实验7
db(字节占8位但是所给数据用‘’括起来了也就是说每一个数字一字节)dd(双字型数据占32位四个字节也就是说每个逗号隔开的数据都是四个字节,在dosbox中中每个空格隔开的是一个字节)dw(字型数据占16位两个字节)那么可知db的首地址是0dd的是21*4=84(10)=54(16)//结果用十进制表示是84用十六进制表示是54dw的首地址是21*4+21*4=168(10)=A8(16)原创 2022-12-25 13:38:39 · 941 阅读 · 0 评论 -
王爽老师汇编语言实验7前一个代码优化
公司总工收入*偏移地址的体现mov dx,ds:[si+21*4+2] *偏移地址的体现。原创 2022-12-25 20:26:58 · 105 阅读 · 0 评论 -
王爽老师汇编语言第四版--实验8(强化位移的概念)
把这条指令复制后也就是机器码,它的作用是使IP加机器码中寸的位移值。原创 2022-12-27 11:45:36 · 139 阅读 · 0 评论 -
王爽老师汇编语言第四版:实验九 根据材料编程
下面这段代码是看完视频后自己有写了一遍的结果。原创 2022-12-27 18:01:45 · 436 阅读 · 0 评论 -
王爽老师汇编语言第四版第十章CALL和RET指令——小白笔记
从这一章开始,开始以小节为单位视频课本结合看,之前都是看完一章视频后再看课本,当然有不足,那就是不知道视频讲的啥,从这一章开始,以每一小节为单位,并且,小节也是结合看,并没有先后之分,希望这样的学习效率更高些。第十章讲的是call和ret 指令,他们修改IP或同时修改IP和CS。经常共同实现子程序设计。原创 2022-12-30 09:11:28 · 693 阅读 · 0 评论 -
王爽老师汇编语言第四版实验11菜鸟笔记
其实做了半天,其中遇到了好多错误,不过发现add指令运算时可以直接对地址进行操作,不过,要加上byte ptr哈我就是没有加。原创 2023-01-01 20:22:02 · 143 阅读 · 0 评论 -
王爽老师汇编语言第四版第九章转移指令的原理9.1-9.3笔记
可以修改IP或同时修改CS和IP的指令统称为转移指令。只修改ip时成为段内转移,同时修改ip和cs时称为段间转移段内转移又分为短转移和近转移短转移的范围是:-128~127近转移ip修改的范围是-32768~327678086CPU的转移指令分以下几类:无条件转移指令(jmp)条件转移指令循环转移指令(loop)循环指令过程中断这些转移指令的条件可能不同但是基本原理相同本章通过无条件转移指令jmp来理解CPU执行转移指令的基本原理。原创 2022-12-27 11:04:31 · 845 阅读 · 0 评论 -
王爽老师汇编语言第十一章 - 标志寄存器 -小白笔记
标志寄存器的三种作用:(1)用来存储相关指令的某种执行结果;(2)用来为CPU执行相关命令提供行为依据;(3)用来控制CPU的相关工作方式8086寄存器也是有16位,但是与其他寄存器不同的是:其他寄存器是用来存放数据的,是整个寄存器具有一个含义。而标志寄存器是按位起作用的,他的每一位都有专门的含义,记录特定的信息。8086cpu的寄存器的结构如图:其中没有显示内容的就是没有使用的,有内容的都是有特殊的含义。原创 2022-12-31 22:24:06 · 323 阅读 · 0 评论 -
王爽老师汇编语言第四版十一章标志寄存器11.6-11.n
cmp是比较指令,相当于减法,只是不保存结果,执行结束后将对标志寄存器产生影响。flag的第十位,DF,方向标志位。在串处理指令中,控制每次操作后的si,di的增减。大多数转移指令都检测标志寄存器的相关标志位,他们通常和cmp结合使用,好比call。它的功能是将ds:[si]中的字数据传送到es:[di]中。cld指令:令df=0,也就是说执行完命令后让si和di加。其实就是将ds:[si]中的数据传送到es:[di]中。这俩指令的操作是让flag标志寄存器中的值入栈和出栈。原创 2023-01-01 18:59:42 · 318 阅读 · 0 评论 -
王爽老师汇编语言第四版第十二章内中断--菜鸟笔记
什么是内中断?我所理解的就是,来自CPU内部的一条信息,告诉CPU先停下来手头的活,执行我所要求你执行的工作。原创 2023-01-02 13:58:42 · 377 阅读 · 0 评论 -
汇编语言第四版 第十二章 编程处理0号中断
将do0的入口地址0000:0200存到中断向量表0号表项中。编写可以将"overflow!"的中断处理程序:do0。将do0送入内存0000:0200中。原创 2023-01-02 20:28:34 · 87 阅读 · 0 评论 -
王爽老师汇编语言第四版--第十二章 单步中断和响应中断的特殊情况 小白笔记
一般的中断CPU都会去理会的,但是凡事无绝对,有的中断CPU是不会管的。即便他之后的指令中断了,也不会去理会,而是一口气执行完因为ss是改变栈的,如果下一条指令有中断,就会push flag CS IP啥的,这样栈顶就不太对了。所以,如果TF=1,那么他执行完一条指令后就要单步中断,就是显示每个寄存器的状态,看上去没有问题,但是我们要知道,中断程序也是一个程序,也是一条条代码,如果这个时候TF还=1,他每执行一条指令后,都会进行单步中断,而单步中断又是单步中断,好像进入了无尽的深渊。原创 2023-01-03 09:49:25 · 225 阅读 · 0 评论 -
王爽老师汇编语言第四版第十三章bios和dos
【代码】王爽老师汇编语言第四版第十三章bios和dos。原创 2023-01-04 20:57:13 · 173 阅读 · 0 评论 -
汇编语言第十三章 int 指令 小白笔记
将data段(以0结尾)的数据,显示到屏幕上。(2)标志寄存器入栈,IF=0,TF=0。问题:用7ch中断完成loop指令功能。(显示到屏幕是我自己添的)(3)CS,IP入栈。原创 2023-01-04 10:39:01 · 1787 阅读 · 0 评论 -
汇编语言第十五章 外中断 小白笔记
(2)如果是字符键的扫描码,将该扫描码和它所对应的字符码(ascll)送入内存(一个字节加一个字节=一个字),=中的BIOS键盘缓冲区,如果是控制键的扫描码,则将其转化成状态字节(用二进制记录控制键和切换键状态字节)写入内存中储存状态字节的单元(内存单元)。按下一个键时,开关接通,芯片会产生一个扫描码,扫描码说明了按下的键在键盘上的位置。松开按下的键时,也会产生一个扫描码,扫描码说明了松开的键在键盘上的位置,松开按键时产生的扫描码也会被送入60h端口中。(1)标志寄存器入栈,if=0,tf=0。原创 2023-01-13 18:49:32 · 680 阅读 · 0 评论 -
王爽老师汇编语言第四版实验13编写、应用中断例程
差点被折磨疯,照着视频敲好后,编译可以通过但是不能显示,自己对代码对了半天,没找到问题,后来去debug中调试了下发现call的时候美由call过去,又觉得视频代码call的太多啦就合并了下终于好了。不用看了后边都是add啥啥啥,根本不是要call的指令,所以我就把ch7合并了,没有让他跳转,然后就好了。期间还怀疑是不是和视频的系统不一样,用winxp试了下后还是不行,直接不能运行了。原来的代码是这样的,不得不说视频上的是真能分。先看ch7有没有搬运过来。原创 2023-01-05 09:56:21 · 276 阅读 · 0 评论 -
王爽老师汇编语言第十四章端口 --小白笔记
CPU可以读取数据的地方;(1)cpu内部寄存器(2)内存单元(3)端口。原创 2023-01-05 16:46:59 · 478 阅读 · 0 评论 -
汇编语言 第十六章 直接定址表 小白笔记
仅仅在assume中将段和寄存器联系起来不能真正联系起来,要想联系还要用mov将寄存器和段地址联系起来。还可以将标号当作数据,这个时候如果标号前是dw就代表标号对应的偏移地址,如果是dd就代表偏移地址和段地址。我们称它为数据标号(在他的后边一定要有数据类型,dd、dw、db等)1、2号功能al传递颜色al=(0,1,2,3,4,5,6,7)有“:”的地址标号只能在代码段中使用,不能在其他段中使用。16进制和2进制的关系是:四位二进制用一位16进制表示。此时标号名称代表的意义包含数据长度和数据地址。原创 2023-01-14 18:24:23 · 264 阅读 · 0 评论 -
第17章 使用BIOS进行键盘输入和磁盘读写
一般的键盘输入,在CPU执行完int9后都放到了键盘缓冲区中。键盘缓冲区中有16个字单元,可以储存15个按键的扫描码和对应的ASCII码。BIOS提供了int 16h 中断例程,int16h 中断例程中包含的一个最重要的功能是从键盘缓冲区中取出一个键盘输入,该功能的编号是0。从60h端口读出扫描码,将其转化为相应的ASCII码或状态信息,储存在内存的指定空间(键盘缓冲区或状态字节)中。键盘输入将引发int9中断,BIOS 提供了int9中断例程。编程:接受键盘输入'r' 'g' 'b'原创 2023-01-15 11:41:48 · 370 阅读 · 0 评论 -
汇编语言第七章更灵活的定位内存地址的方法 7.5 [bx+idata]
将一个内存单元的内容送入ax 单位是两个字节(一个字) 偏移地址为bx中的数值加200。8.si di 在8086中和bx功能相似 ,但是si di 不能分成两个8位寄存器来使用。3.e 修改地址中的内容 想在dosbox中直接写命令应该在debug中先写一个a。db定义字节类型变量,一个字节数据占1个字节单元,读完一个,偏移量加1。dd定义双字类型变量,一个双字数据占4个字节单元,读完一个,偏移量加4。dw定义字类型变量,一个字数据占2个字节单元,读完一个,偏移量加2。mov 寄存器名,段名。原创 2022-12-23 17:17:28 · 181 阅读 · 0 评论