![](https://img-blog.csdnimg.cn/20210711225914188.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
汇编学习
文章平均质量分 85
日常学习过程
ReY_
这个作者很懒,什么都没留下…
展开
-
学习笔记 -- call和ret
call和ret指令都是转移指令,它们都修改IP,或同时修改CS和IP。它们经常被共同用来实现子程序的设计。ret和retfret指令用栈中的数据,修改IP的内容,从而实现近转移。retf指令用栈中的数据,修改CS和IP的内容,从而实现远转移。当CPU执行ret指令时,相当于进行:pop IP当CPU执行retf指令时,相当于进行:pop ippop cscall指令CPU执行call指令时,进行两步操作:将当前的IP或CS和IP压入栈中。转移call指令不能实现短转移,cal原创 2021-08-13 16:18:25 · 227 阅读 · 1 评论 -
学习笔记 -- 转移指令的原理
可以修改IP,或同时修改CS和IP的指令统称为转移指令。8086CPU的转移行为:只修改IP时,称为段内转移。同时修改CS和IP时,称为段间转移。8086CPU的转移指令:无条件转移指令(jmp)条件转移指令循环指令(loop)过程中断操作符offsetoffset在汇编语言中是由编译器处理的符号,功能是取得标号的偏移地址。assume cs:codecode segment start: mov ax,offset start ;相当于mov ax,0 s: mov原创 2021-08-06 15:45:41 · 276 阅读 · 0 评论 -
学习笔记 -- 数据处理
reg表示一个寄存器,sreg表示一个段寄存器reg包括:ax、bx、cx、dx、ah、al、bh、bl、ch、cl、dh、dl、sp、bp、si、disreg包括:ds、ss、cs、esbx、si、di和bp在8086CPU中,只有4个寄存器可以用在[……]中来进行内存单元的寻址。在[……]中,这4个寄存器可以单个出现,或以4种组合出现:bx和si、bx和di、bp和si、bp和di。bx和bp、si和di不能放一起使用。si指向源数据地址,di指向目的数据地址。只要在[……]中使用寄存器b原创 2021-07-31 22:12:39 · 1141 阅读 · 0 评论 -
学习笔记 -- 定位内存地址
and和or指令0代表假,1代表真。and指令逻辑与指令,按位进行与运算。有假则假。0&0=0 , 0&1=0 , 1&1=1通过and指令可将操作对象相应位设为0,其他位不变。and al,11011111b 将al的第5位设为0or指令逻辑或指令,按位进行或运算。有真则真。0|0=0 , 0|1=1 , 1|1=1通过or指令可将操作对象的相应为设为1,其他位不变。or al,00100000b 将al的第5位设为1ASCII码文本编辑过原创 2021-07-29 16:48:34 · 292 阅读 · 0 评论 -
学习笔记 -- [BX]和loop
[bx]描述一个内存单元,需要两种信息:内存单元的地址内存单元的长度(类型)用[0]表示一个内存单元时,0表示单元的偏移地址,段地址默认在ds中,单元长度由具体指令中的其他操作对象指出。[bx]同样也表示一个内存单元,它的偏移地址在bx中。mov ax,[bx]功能:bx中存放的数据作为一个偏移地址EA,段地址SA在ds中,将SA:EA处的数据送入ax。mov [bx],ax功能:bx中存放的数据作为偏移地址EA,段地址SA在ds中,将ax中的数据送入内存SA:EA处。存入字节数原创 2021-07-25 11:20:46 · 203 阅读 · 0 评论 -
学习笔记 -- 程序
源程序的执行过程编写汇编源程序。对源程序进行编译连接。执行可执行文件中的程序。可执行文件包含两部分。程序(从源程序中的汇编指令翻译过来的机器码)和数据(源程序中定义的数据)。相关的描述信息。操作系统依照描述信息,将文件中的机器码和数据加载如内存,并进行相关的初始化,再由CPU执行程序。源程序一个简单的汇编程序assume cs:abcabc segmentstart: mov ax,0123h mov bx,0456h add ax,bx add ax,ax原创 2021-07-22 08:12:31 · 148 阅读 · 0 评论 -
学习笔记 – 寄存器(内存访问)
字的存储CPU中,用16位寄存器来存储一个字。高8位存放高位字节,低8位存放低位字节。在内存中存储时,由于内存单元是字节单元,则一个字要两个地址连续的内存单元来存放。两个地址连续的内存单元组成的是字单元。起始地址为N的字单元简称为N地址字单元。任何两个地址连续的内存单元,N号单元和N+1号单元。DS和[address]8086CPU中有一个DS寄存器,通常用来存放要访问数据的段地址。mov可以将数据直接送入寄存器,也可以将一个寄存器中的内容送入另一个寄存器。对于内存单元和寄存器,mov也可以将原创 2021-07-20 09:59:12 · 651 阅读 · 0 评论 -
学习笔记--寄存器
学习笔记 – 寄存器一个典型的CPU由运算器、控制器、寄存器(CPU工作原理)等器件组成。靠内部总线相连。前面三类总线相对于CPU是外部总线。内外部总线区别:内部总线实现CPU内部各个器件之间的联系。外部总线实现CPU和主板上各个器件之间的联系。在CPU中:运算器进行信息处理;寄存器进行信息存储;控制器控制各种器件进行工作;内部总线连接各种器件,在它们之间进行数据的传送。CPU的主要部件是寄存器,寄存器是CPU中程序用指令读写的部件。8086CPU有14个寄存器。分别是:AX、原创 2021-07-17 00:36:12 · 595 阅读 · 0 评论 -
学习笔记--基础知识
学习笔记 – 基础知识机器语言机器语言是机器指令的集合。机器指令展开来讲就是一台机器可以正确执行的命令。使用0和1数字编程。汇编语言的产生汇编语言的主体是汇编指令。汇编指令和机器语言的差别就在于指令的表示方法上。汇编指令是机器指令便于记忆的书写格式。mov ax,bx上面的汇编指令就是将bx寄存器中的内容转移到ax寄存器中。程序员写出汇编指令,编译器将指令转化为机器码再由计算机执行。汇编语言的组成汇编语言有3类指令:汇编指令:机器码的助记符,有对应的机器码。例:mov ad原创 2021-07-13 07:53:09 · 351 阅读 · 0 评论