随笔分类 - 汇编语言
摘要:假设我们的数据存在al中,我们需要判断al的正负,并且当al为正数时,ah = 1, al 为负数时, ah = -1 琢磨了一下子这道题目,想要在汇编中实现 选择,那就只能用条件转跳了,条件转跳 肯定就和标志位 息息相关,用啥子,标志位咧,ZF?CF?AF?SF? 我好难啊喵~,都试一遍吧 第一种
阅读全文
摘要:这个实验的意义极大,总合之前的全部知识,而且难度不大,很适合拿来啊巩固所学(我从开始写到现在居然写了5天,我这个拖延症……) 其实不是想想的那么难,图中标明了只有年份,按字符存储,其他直接数据就好了,所以,我们只需要成功一次,控制好迭代寄存器,就可以轻松实现 下面是我的代码,仅供参考: assume
阅读全文
摘要:debug中的标志位显示顺序 1 OF DF IF SF ZF AF PF CF OF 标志位(溢出) OF = 1, 显示为OV OF = 0, 显示为NV 影响OF的指令举例, INC DF 标志位(方向) DF = 0, 显示为UP DF = 1, 显示为DN 影响DF的指令举例, CLD,
阅读全文
摘要:1. 数据处理的两个基本问题 这已经是老生常谈啦, 数据处理有两个关键的问题: 第一,需要处理的数据在 什么地方? 第二呢,是需要处理的数据 有多长? 这两个问题 是我们 编程的基础, 如果不知道数据从何而来,其规模大小 再优秀的计算机也是会无能为力啦 在这里先定义两个符号 reg 和 sreg :
阅读全文
摘要:1. and 指令 进行 逻辑与 运算 and ax, 0FFH ;获取低四位的值 eg: 0111 1101 ; 设这个是AX的存放的值 and 0000 1111 ; 0FFH 的二进制 0000 1101 ; AX的最终结果 简单来说, 就是 按位 与, 有 0 即为 0 同 1 方为 1,
阅读全文
摘要:8088/8086: 最小模式下信号总线由芯片内部直接引出 最小模式下 8086 的 低八位数据线 和 低八位地址线 位分时复用 控制线: 发送地址时, 会送出 ALE(地址锁存允许信号) 信号, IO/(!M) 信号区分 端口 和 存储器,端口用于 键盘鼠标等外设等, 另外用于 内存(ROM+RA
阅读全文
摘要:编程时应该注意什么? 数据来源 寄存器、内存地址 访问方式: ds:[0] 或ds:[bx] 数据的长度: 字节、字 数据的归宿: es 需要记住返回指令: mov ax, 4c00h int 21h ps:int 指令需要 用 -p 执行 现在 来思考一下 2^N 如和计算 嗯,之前写过 2^3是
阅读全文
摘要:基本语法结构: assume cs:段名 段名 segment …… 段名 end end ps: assume 用于寄存器和特定段关联起来 程序返回: mov ax, 4c00h int 21h -p 执行 int 指令 告诉系统这款内存可以使用了 debug x.exe, 可以对某个程序进行过程
阅读全文
摘要:如何看待 内存 ? 可以存放数据 数据段 自己定义的数据 可以存放指令 指令段 自己定义的指令 可以定义成栈空间 栈段 临时存放数据 那么如何让 CPU 按照我们的意愿去访问内存? 对于数据段,我们需要有段地址+偏移地址,目前段地址寄存器只学过 ds 寄存器, 偏移地址只学过 [0],[1] ...
阅读全文
摘要:栈: 栈是什么? 存放数据的容器 栈 和一般的容器有什么区别,如何存取呢? 先进后出, 类似于 往密闭的盒子放东西 每一次只能拿出最顶部的东西,每一次只能在最顶部放入东西 放入的过程 被称为 入栈,一般用 push 表示 eg: push ax 取出的过程 被称为 出栈,一般用 pop 表示 eg:
阅读全文
摘要:第三章:寄存器(内存访问)问题: call指令将 IP 保存在内存的哪里?ret可以拿回 一个字型数据存放在内存中可以由 2个连续的的内存单元组成 高地址 单元存放 字型数据的 高位字节 低地址 单元存放 字型数据的 低位字节 ds 一般用于数据访问,所以搞波实验,(学习进度就是这样降下来的) 实验
阅读全文
摘要:寄存器: 数据寄存器 ax bx cx dx 其中bx也可以作为地址偏移寄存器 地址寄存器 段地址寄存器 偏移地址寄存器 标志位寄存器(组成原理里面说过) ax bx cx dx 被称为通用寄存器四个寄存器都可以分割为两个八位寄存器 这样实现的目的: 便于一直,且CPU最处理单元为8bit,充分利用
阅读全文
摘要:表示内存地址的寄存器: 内存地址由段地址寄存器和偏移地址寄存器共同存储 段地址寄存器:ds, es, ss, cs 偏移地址寄存器:sp, bp, si, di, ip, bx 辣么为什么地址要分段呢? 8086寄存器有 20根 数据线 CPU为16位的无法处理 20 位 的地址信息 所以额外假设了
阅读全文
摘要:1、寄存器: 1、通用寄存器:AX,BX,CX,DX ——存放数据,最大容量FFFFH(16bit寄存器) ——可以分割成高八 AH 低八 AL 两个寄存器 为什么能分割? CPU最低读取单位为字节 8bit,且 8086 的寄存器为 16 位寄存器, 8086 CPU 可以处理 两种尺寸的数据:
阅读全文
摘要:CPU如何访问内存条、显卡、ROM等设备 通过内存访问地址 内存分为:RAM,ROM RAM断电丢失ROM只读 显存:GPU? 图形处理芯片之前没有,画图由CPU负责 随着图形的要求提升,对CPU进行分工 GPU 专门进行图形处理,有专门的编程语言 ,吃物理和数学 8086 B800:0000 40
阅读全文
摘要:内存的概念: 内存有一个内存空间: 内部存放了各种部件的地址 内存条被称为主内存 图中内存地址不是内存条的地址B8400:400,因为显示在屏幕上,显然操作的是显卡的显存 RAM 允许读写,断电 数据 和 指令 丢失ROM 只允许读取,断电 数据 和 指令 不丢失 巩固: 1、CPU和计算机各个部件
阅读全文
摘要:内存编号为什么从0 开始? CPU只能存储放一部分内存指令 ,更庞大的指令集需要通过其他介质存储,需要其他介质,内存,(内存条是内存的一部分,内存分为ROM和RAM),内存条通过 主板 与CPU 相互连接,如果CPU想通过主板读取内存的内容,那么主板上的线路需要能表示 三种信息: 内存编号信息,用于
阅读全文
摘要:什么是机器指令 由二进制编码而成的0/1数字串 机器指令由谁执行 CPU 机器指令和汇编指令的关系 通过编译器,汇编指令可以转化成机器指令 什么是编译器 将代码转换成机器的指令码的程序,类似于翻译软件 什么是伪指令 告诉编译器该如何转成机器指令 机器指令(汇编指令)和数据存放在哪里 内存 机器指令和
阅读全文

浙公网安备 33010602011771号