汇编语言
文章平均质量分 76
OneTrianee
已经转到cnblogs,OneTrainee,研究二进制安全。csdn广告忒多了点烦人。
展开
-
《汇编语言》第九章 转移指令的原理
第九章 转移指令的原理第九章 转移指令的原理9.0 转移的分类:9.1 操作符 offset9.2 jmp指令9.3 依据位移进行转移的jmp指令9.4 转移的目的指令在指令中的jmp指令9.5 转移地址在寄存器中的jmp指令9.6 转移地址在内存中的jmp指令。9.7 jcxz指令9.8 loop指令9.9 根据位移进行转移的意义9.10 编译器对转移位移超界的检测...原创 2018-03-16 11:05:01 · 378 阅读 · 0 评论 -
《x86汇编语言:从实模式到保护模式》 前几章配置环境说明总结
前言: 这本书在寒假看完王爽的《汇编语言》后就想好好看看,当时买了电子版一直没看进去,偶然在图书馆发现有纸质书,所以就拿来好好读一读。这本书一直被很多人推荐,作者曾写过《穿越计算机迷雾》,挺赞的。但是,在阅读过程中,尤其在前几章的配置时,发现作者自己编写的软件都是32位,毕竟是很多年前的了,现在在Win10的64位环境下很多不兼容,这里给出了替代工具,和操作方法及汇编代码的错误之处。...原创 2018-05-22 19:57:47 · 7422 阅读 · 9 评论 -
《X86汇编 从实模式到保护模式》 关于Bochsdbg二次启动错误的解决方案
1.前言:在本书中,Bochsdbg是一个非常重要的调试工具,关于bochsrc文件的配置,在文件中的配置已经给出了,按照这步骤来完全可以。 第一次时按步骤配置,之后使用“断点”跳转到0x7c00主引导扇区时完全可以,但当往下学习学习到下一章再次运行时,发现无法跳转到主引导扇区,经过多次尝试,终于找到一种可行的解决方案,再次记录一下,希望可以对其他人有帮助。2.问题:1.错误1...原创 2018-05-26 13:15:02 · 945 阅读 · 5 评论 -
《汇编语言》 第十二章 内中断
第12章 内中断任何一个CPU,都具有一种能力,可以在执行完当前正在执行的指令后,监测到CPU外部发送过来的或者内部产生的一种特殊信息,并且可可以立即对所接收到的信息进行处理。这种特殊的信息,我们可以称其为:中断信息。12.1 内中断的产生当CPU内部有下面的情况发生的时候,将产生相应的中断信息,除法错误,比如,执行div指令产生的除法溢出;单步执行;执行into指令;...原创 2018-03-21 23:38:43 · 378 阅读 · 0 评论 -
《汇编语言》第十六章 直接定位表
第16章 直接定位表16.1 描述了单元长度的标号我们常用offset来获取标号的内存地址。offset a,reg a,前者是获取a的偏移地址,后者是获取a的段地址。将它们放在相关寄存器当中,进行数据转移等有关操作。现在,我们有了另一种写法:assume cs:codecode segment a db 1,2,3,4,5,6,7,8 b dw ...原创 2018-03-25 17:16:23 · 436 阅读 · 0 评论 -
《汇编语言》第十五章 外中断
第15章 外中断以前我们讨论的都是CPU对指令的执行。我们知道,CPU在计算机系统中,除了能够执行指令,进行运算以外,还应该能够对外部设备进行控制,接受它们的输入,向它们进行输出,也就是说,CPU除了有运算能力外,还要有I/O能力。要及时处理外设的输入,显然需要解决两个问题:1.外设的输入随时可能方式,CPU如何得知?2.CPU从何处的到外设的输入?15.1 接口芯片和端口第1...原创 2018-03-25 15:08:07 · 1149 阅读 · 0 评论 -
《汇编语言》 第十一章 标志寄存器
第11章 标志寄存器CPU内部的寄存器中,有一种特殊的寄存器(对于不同的处理机,个数和结构都有可能不同)具有以下3种作用。用来存储相关指令的某些执行结果;用来为CPU执行相关指令提供行为依据;用来控制CPU的相关工作方式。这种特殊的寄存器,被称为标志寄存器。8086CPU的标志寄存器有16位,其中存储的信息通常被称为程序状态字PSW。关于标志寄存器的各位如图所示,有很多...原创 2018-03-20 23:23:26 · 513 阅读 · 0 评论 -
《汇编语言》第十四章 端口
第14章 端口我们前面讲过,各种存储器和CPU的地址线,数据线,控制线相连。CPU在操控它们的时候,把它们当作内存来对待,把它们都当作内存来对待,把它们总地看做一个由若干存储单元组成的逻辑存储器,这个逻辑存储器我们称其为内存地址空间。在PC机系统中,和CPU通过总线相连的芯片除各种寄存器外,还有3种芯片:各种接口卡(显卡,网卡)上的接口芯片,它们控制接口卡进行工作;主板上的芯片接口...原创 2018-03-24 19:48:51 · 404 阅读 · 0 评论 -
《汇编语言》第十三章 int指令
第13章 int 指令中断信息可以来自CPU的内部和外部,当CPU的内部有需要处理的事情发生的时候,将产生马上需要处理的中断信息,引发中断过程。这一章,我们要讲解另一种重要的内中断,由int指令引发的中断13.1 int指令int指令的格式为int n 指令,相当于引发一个n号中断的中断过程,执行情况如下:取中断类型码n;标志寄存器入栈,IF=0,TF=0;CS,IP...原创 2018-03-23 15:25:00 · 723 阅读 · 0 评论 -
《汇编语言》实验10.2 解决除法溢出问题
实验10.2关于div指令div是除法指令,使用div做除法的时候应该注意以下问题:除数:有8位和16位两种,在一个reg或内存单元中。被除数:默认放在AX或DX和AX中,如果除数为8位,被除数则为16位,默认在AX中存放;如果除数为16位,被除数则为32位,在DX和AX中存放,DX存放高16位,AX存放低16位结果:如果除数为8位,则AL存储出发操作的商,AH存储除法操作的余数...原创 2018-03-18 08:26:27 · 1776 阅读 · 0 评论 -
《汇编语言》第十章 CALL和RET指令
# 第10章 CALL和RET指令10.1 ret和retfret指令用栈中的数据,修改IP的内容,从而实现近转移。 retf指令用栈中的数据,修改CS和IP内容,从而实现远转移。CPU执行ret指令时,进行下面两步操作:(IP)=((SS)*16+(SP))(SP)=(SP)+2这是将栈顶的数据存入IP,然后将该数据进行出栈操作。CPU执行retf指令时,进行...原创 2018-03-17 19:51:58 · 464 阅读 · 0 评论 -
《汇编语言》 第四章 第一个程序
第四章 第一个程序4.1 CX中存放程序的长度Debug将程序加载到内存后,cx中存放的是程序的长度。4.2 DOS系统加载EXE文件的过程先找到一段起始地址为SA.0000的容量足够的内存区。在这内存区的前256个字节中,创建一个称为程序段前缀(PSP)的数据区,DOS要利用PSP来和被加载程序进行通讯。在这段内存区的256字节出开始,将程序装入,程序的地址被设为 SA...原创 2018-03-17 10:25:17 · 302 阅读 · 0 评论 -
《汇编语言》第三章 寄存器(内存访问)
第3章 寄存器(内存访问)3.1 内存中字的存储在内存单元中,地址高的是高位,地址低的是低位。 我们在读取内存时喜欢从0开始读,但我们在读取数字的时候一定不喜欢从最低位开始读,所以如果这个分不清,那么是这个是相当“痛苦的”,所以,一个数据如果确定是一个字,那么直接从高位开始读取,这样更好理解。3.2 字的传送如果直接将内存单元送入寄存器中,那么默认送入一个字,即两...原创 2018-03-16 22:55:54 · 487 阅读 · 0 评论 -
《汇编语言》 第二章 寄存器
第2章 寄存器2.0 CPU内部各种分工运算器进行信息处理;寄存器进行信息存储;控制器控制各种器件进行工作;内存总线连接个中器件,在它们之间进行数据的传输。2.1 通用寄存器AX,BX,CX,DX存放一般行数据,被称为通用寄存器。 我们阅读寄存器时,一定要看内存单元上方的是从高往低还是从低往高。都是按从低往高常规思路来存储,即“你的权位越高,那么你存储的内...原创 2018-03-16 22:31:04 · 218 阅读 · 0 评论 -
《汇编语言》 第一章 基础知识
第1章 基础知识1.1 汇编语言的组成汇编指令:机器码的助记符,有对应的机器码。伪指令:没有对应的机器码,由编译器执行,计算机并不执行。其他符号:由编译器识别,没有对应的机器码。1.2存储单元一个存储存储单元并不是一个bit,而是一个byte,字节,由8个bit两个十六进制组成。内存单元的段地址和偏移地址都是一个字,即两个字节组成的。1.3 CPU对存...原创 2018-03-16 22:00:20 · 211 阅读 · 0 评论 -
《汇编语言》实验九
实验八 分析一个奇怪的程序assume cs:codesgcodesg segment mov ax,4c00h int 21hstart: mov ax,0 s: nop nop mov di,offset s ...原创 2018-03-16 11:15:08 · 412 阅读 · 0 评论