网站500错误 虚拟主机,虚拟主机怎么建设网站,茶叶网站建设的优势,设置WordPress注册文章目录 前言硬件运行机制微机系统硬件组成计算机系统组成8086cpu组织架构dosbox安装配置debug debug使用R命令D命令E命令U命令T命令A命令标志寄存器 总结 前言
各位师傅大家好#xff0c;我是qmx_07#xff0c;今天给大家讲解 十六位汇编 和 debug调试器的使用
硬件运行… 文章目录 前言硬件运行机制微机系统硬件组成计算机系统组成8086cpu组织架构dosbox安装配置debug debug使用R命令D命令E命令U命令T命令A命令标志寄存器 总结 前言
各位师傅大家好我是qmx_07今天给大家讲解 十六位汇编 和 debug调试器的使用
硬件运行机制 为什么计算机的数据操作单位是二进制呢? 通过电子二极管正向加电则通反向加电则不通得到 0 和 1 根据电子二极管的特性得到以下门电路: 在计算机底层加减乘除的运算就是由 与 或 非 三种运算构成 更高级的数学运算也可以通过简单的位运算计算将常用运算封装成一个器件称之为单元。 机器码类似111111000010101010B可以用来控制硬件的二进制数据叫做机器码。 助记符Mnemonic二进制值难记每种功能的二进制控制码取一个容易记住的名字叫做助记符也称之为指令 例如00B - add 01B - sub 汇编:将助记符 通过汇编器 转成机器码
微机系统硬件组成
一个系统不可能由一个硬件单独完成所以划分出多个硬件模块然后由一个硬件模块居中调度称作cpu 单片机: I/0桥:所有的硬件模块连接到I/O桥由I/O桥负责辅助cpu与哪一个硬件模块连接 总线:cpu有8位数据/地址线ram是个256byte的存储器
计算机系统组成
计算机分层: 计算机编译过程:
执行 -
8086cpu组织架构
8086架构图 EU部件1. 执行部件excution unit 2. 译码 3. 执行指令 BIU部件1. 总线接口部件bus interface unit 2. 取指令 3. 读取数据 4. 写入数据 寄存器: 流水线处理:8086cpu将指令的执行分成多个模块有什么好处 可以多个部件同时工作,提高硬件的利用率,从而提高效率 在8086 CPU架构下串行处理和流水线处理是两种不同的指令处理方式:
串行处理 串行处理是指在执行指令时逐条顺序地执行指令。当一条指令执行完成后才能开始执行下一条指令。这种处理方式的特点是简单直观易于理解和调试但效率相对较低。因为在串行处理中指令之间存在时钟周期的间隔导致CPU的运行效率受限。8086 CPU在早期的时候主要采用串行处理方式流水线处理 流水线处理是指将指令处理过程划分为多个阶段并在不同阶段同时执行不同的指令。每个阶段负责完成指定的任务然后将结果传递给下一个阶段。这样可以实现多个指令的并行处理提高CPU的执行效率。流水线处理利用了指令的部分并行性有效地利用了CPU资源。8086 CPU在后期引入了流水线处理的技术提高了指令的执行速度
在8086 CPU中流水线处理主要包括以下几个阶段
取指令阶段Instruction Fetch从内存中读取指令并将其存储在指令缓存中。译码阶段Instruction Decode对取得的指令进行解码确定指令的操作类型和操作数。执行阶段Execution根据指令的类型执行相应的操作比如算术运算、逻辑运算等。存储阶段Memory Access若指令需要访问内存或外设则在此阶段进行数据的读取或写入。写回阶段Write Back将执行结果写回寄存器或内存。 效率流水线处理 串行处理 弊端:当跳转到总线使用的时候此时已经取得一部分指令并且已经译码了.那么此时这部分将清空从头操作,类似于goto语句
dosbox安装
介绍模拟DOS环境执行旧的dos程序 链接https://pan.baidu.com/s/141agLfQWdAnmK24WTdtOfw?pwdsds3 提取码sds3 选择合适的下载路径安装dosbox环境
配置debug 1.mount c f:\dosbox\
将f:\dosbox\ 这个路径挂载为虚拟c盘
2.c:
切换为c盘使用 将debug程序 放进f:\dosbox\路径下 通过 options.bat程序就可以自动挂载磁盘
dos基础命令:
#cd\ ——首先要用cd\ 退回到根目录C下
#dir ——显示文件列表
#md hb ——建立hb子目录
#cd hb ——进入hb子目录
#copy d:\dos\masm.exe c:\hb ——将D盘dos目录下的masm.exe拷贝到C盘hb目录下
#copy d:\dos\link.exe c:\hb ——将D盘dos目录下的link.exe拷贝到C盘hb目录下
#cd .. ——退回到上一级目录
#del \hb\masm.exe ——删除hb子目录中的某文件
#rd hb ——删除hb子目录子目录中的所有文件必须先删除
#e——进入e盘
#cls ——清屏
#type——显示文本文件内容如type c:\hb\abc.asmdebug使用
介绍:debug是微软公司出品的调试工具,可以调试0环和3环作用:深入机器内部观察修改观察寄存器等值的内容基本功能介绍: R命令查看、改变CPU寄存器的内容 D命令查看内存中的内容 E命令改写内存中的内容 U命令将内存中的机器指令翻译成汇编指令 T命令执行一条机器指令 A命令以汇编指令的格式在内存中写入一条机器指令 Q命令退出 R命令 查看CPU寄存器的内容[R]修改寄存器中的值[R 寄存器]
D命令
查看内存中的内容【D 段地址偏移地址】指定范围查看内存中的内容【D 段地址起始偏移地址 结尾偏移地址】 左侧为每行的内存单元起始地址 中间为128个内存单元的内容用十六进制的格式输出 右侧为每个内存单元中的数据对应的可显示的ASCII码字符
E命令 修改内存中的内容【E 段地址偏移地址】 一次性修改多个内存中的内容【E 段地址偏移地址 值1 值2 …】
U命令 将内存中的机器指令翻译成汇编指令【U 段地址偏移地址】 U命令的显示输出分为三部分 左侧为机器指令的地址 中间为机器指令 右侧为机器指令所对应的汇编指令 T命令 执行一条或多条指令【T】类似于VS调试中的F11执行的命令为CSIP指向的指令
A命令 以汇编指令的形式在内存写入机器指令【A 段地址偏移地址】Debug会将这些汇编指令翻译成对应的机器指令将它们的机器码写入内存在给出的起始地址后面直接按Enter键表示操作结束
标志寄存器 条件标志
CF 进位标志用于反映运算是否产生进位或借位。如果运算结果的最高位产生一个进位或借位则CF置1否则置0。运算结果的最高位包括字操作的第15位和字节操作的第7位。移位指令也会将操作数的最高位或最低位移入CF。PF 奇偶标志用于反映运算结果低8位中“1”的个数。“1”的个数为偶数则PF置1否则置0。AF 辅助进位标志算数操作结果的第三位从0开始计数如果产生了进位或者借位则将其置为1否则置为0常在BCD(binary-codedecimal)算术运算中被使用。ZF 零标志用于判断结果是否为0。运算结果0ZF置1否则置0。SF 符号标志用于反映运算结果的符号运算结果为负SF置1否则置0。因为有符号数采用补码的形式表示所以SF与运算结果的最高位相同。OF 溢出标志反映有符号数加减运算是否溢出。如果运算结果超过了8位或者16位有符号数的表示范围则OF置1否则置0。
控制标志
TF 跟踪标志当TF被设置为1时CPU进入单步模式所谓单步模式就是CPU在每执行一步指令后都产生一个单步中断。主要用于程序的调试。8086/8088中没有专门用来置位和清零TF的命令需要用其他办法。 IF 中断标志决定CPU是否响应外部可屏蔽中断请求。IF为1时CPU允许响应外部的可屏蔽中断请求。 DF 方向标志决定串操作指令执行时有关指针寄存器调整方向。当DF为1时串操作指令按递减方式改变有关存储器指针值每次操作后使SI、DI递减。 进位针对的是无符号数运算溢出针对的是有符号数运算。 当看成无符号数则关注CF标志看成有符号数则关注OF标志。
总结
介绍了计算机中硬件的运行原理计算机系统组成8086cpu的组织架构debug的基础使用以及标志寄存器的讲解