汇编
文章平均质量分 76
bug-10086
这个作者很懒,什么都没留下…
展开
-
汇编 第十六章 直接定址表
第十六章 直接定址表16.1 描述了单元长度的标号 1.本章讨论如何有效合理地组织数据,以及相关的编程技术 1.前面的课程中,我们一直在代码段中使用标号来标记指令、数据、段的起始地址 2.还可以使用一种标号,这种标号不但可以表示内存单元的地址,还表示了内存单元的长度 即:表示在此标号处的单元,是一个字节单元,还是字单元还是双字单元 2.例如 1.标号1 a : db 1,2,3,4,5,6原创 2021-04-17 16:58:36 · 212 阅读 · 1 评论 -
汇编 第十五章 外中断
第十五章 外中断CPU除了有运算能力,还有I/O能力15.1 接口芯片和端口1.在PC系统的接口卡和主板上,装有各种接口芯片,这些外设接口芯片的内部装有若干寄存器 CPU将这些寄存器当做【端口】访问2.外设的输入不直接送入内存和CPU,而是送入相关的接口芯片的【端口】中3.CPU向外设的输出也是要先送入【端口】中,再由相关芯片送入到外设4.CPU可以向外设输出控制命令,这些控制命令也是先送到【端口】中,然后相关芯片根据命令进行相关工作5.可见:CPU与外部设备的交流是通过【端口】进行的原创 2021-04-17 11:46:23 · 172 阅读 · 2 评论 -
汇编 第十四章 端口
第十四章 端口我们前面讲过,各种存储器都和 CPU 的地址线、数据线、控制线相连。CPU在操控它们的时候,把它们都当作内存来对待,把它们总地看做一个由若干存储单元组成的逻辑存储器,这个逻辑存储器我们称其为内存地址空间(可参见1.15节)。在PC机系统中,和CPU通过总线相连的芯片除各种存储器外,还有以下3种芯片。(1)各种接口卡(比如,网卡、显卡)上的接口芯片,它们控制接口卡进行工作;(2)主板上的接口芯片,CPU通过它们对部分外设进行访问;(3)其他芯片,用来存储相关的系统信息,或进行相关的输入原创 2021-04-17 10:25:58 · 362 阅读 · 0 评论 -
汇编 第十三章 int指令
第十三章 int指令中断信息可以来自CPU的内部和外部,当CPU的内部有需要处理的事情发生的时候,将产生需要马上处理的中断信息,引发中断过程。在第12章中,我们讲解了中断过程和两种内中断的处理。这一章中,我们讲解另一种重要的内中断,由int指令引发的中断。13.1 int指令1.int格式:int n ;n为中断类型码 它的功能是引发中断过程2.CPU执行int n指令,相当于引发一个n号中断的中断过程,执行过程如下 1.取中断类型码 2.标志寄存器入栈,if=0,tf=原创 2021-04-17 09:45:04 · 832 阅读 · 0 评论 -
汇编 第十二章 内中断
第十二章 内中断引言和简介1.中断是CPU处理外部突发事件的一个重要技术2.它能使CPU在运行过程中对外部事件发出的中断请求及时地进行处理,处理完成后又立即返回断点,继续进行CPU原来的工作。3.引起中断的原因【即:发出中断请求的来源叫作中断源】4.根据中断源的不同,可以把中断分为:【软件中断】和【硬件中断】两大类, 而硬件中断又可以分为【外部中断】和【内部中断】两类12.1 内中断的产生1.外部中断一般是指计算机外设发出的中断请求,如:键盘中断、打印机中断、定时器中断。 外部中断是可原创 2021-04-15 21:49:52 · 503 阅读 · 0 评论 -
汇编 第十一章 标志寄存器
第十一章 标志寄存器8086CPU的标志寄存器有16位,其中存储的信息通常被称为程序状态字(PSW:program status word)本章中的标志寄存器(以下简称为flag)是我们要学习的最有一个寄存器flag寄存器是按位起作用的,也就是说,它的每一位都有专门的含义,记录特定的信息8086CPU的flag寄存器的结构:1.flag的1、3、4、12、13、14、15位共7位在8086CPU中没有使用,不具有任何含义而0、2、4、6、7、8、9、10、11位共9位都具有特殊的含义2.示意图原创 2021-04-14 20:45:48 · 608 阅读 · 0 评论 -
汇编 第十章 call和ret指令
第十章 call和ret指令call和ret指令都是转移指令,它们都能修改ip,或同时修改cs和ip10.1 ret和retf1.ret指令用栈中的数据,修改ip的内容,从而实现【近转移】 CPU执行ret指令时,进行下面两步操作: 1.(ip)=((ss)*16+(sp)) ;ip的值修改为栈顶的内容 2.(sp)=(sp)+2 ;栈顶移动2.retf指令用栈中的数据,修改cs和ip的内容,从而实现【远转移】 CPU执行retf指令时,进行下原创 2021-04-12 21:27:27 · 1778 阅读 · 1 评论 -
汇编 第九章 转移指令的原理
第九章 转移指令的原理8086CPU的转移指令分为以下几类:1.无条件跳转指令(如:jmp)2.条件跳转指令3.循环指令(如:loop)4.过程,就像C语言中的函数5.中断9.1 操作符offset 操作符offset(伪指令)在汇编语言中由编译器处理,它的功能是取标号的偏移地址。assume cs :codesgcodesg segmentstart : mov ax,offset start;相当于mov ax,0s : mov ax,offset s;相当于mov a原创 2021-04-12 10:17:56 · 744 阅读 · 0 评论 -
汇编 第八章 数据处理的两个基本问题
第八章 数据处理的两个基本问题本章对前面的所有内容是具有总结性的计算机是进行数据处理、运算的机器,那么有两个基本的问题就包含在其中:1.处理的数据在什么地方?2.要处理的数据有多长?这两个问题,在机器指令中必须给以明确或隐含的说明,否则计算机就无法工作8.1 bx、si、di、bp 1.在8086CPU中,只有这4个寄存器(bx、bp、si、di)可以用在“[…]” 中,用来进行内存单元的寻址 2.在“[…]”中,这四个寄存器(bx、bp、si、di)可以单原创 2021-04-12 10:12:29 · 663 阅读 · 0 评论 -
汇编 第七章 更灵活地定位内存地址
第七章 更灵活地定位内存地址本章主要讲解一些更灵活的定位内存地址的方法和相关的编程方法7.1 and和or指令 1.and指令:逻辑与指令,按位进行与运算 1.如:mov al,01100011B and al,00111011B//后面和al 与运算放入al 执行后: al=00100011B 2.通过and指令可将操作对象的相应位设为0,其他位保持不变原创 2021-04-12 10:06:56 · 325 阅读 · 1 评论 -
汇编 第六章 包含多个段的程序
第六章 包含多个段的程序6.1在代码段中使用数据 1.dw的含义【定义字型数据:define word,16字节】assume cs : codecode segment dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h mov bx,0 mov ax,0 mov cx,8s: add ax,cs : [ bx] add bx,2 loop s mov ax,4c00h int 21hcode endsend解释一原创 2021-04-12 10:02:33 · 452 阅读 · 0 评论 -
汇编 第五章 【bx】和loop指令
第五章 【bx】和loop指令5.1 [bx]因为在debug中使用mov ax,[0]:代表的是偏移地址,而在asm文件中写的编译后却变成了数字 mov ax,0 相当与把0给了ax ,而不是 ds:0,所以出现了bx。要写成这样才能实现:mov ax,ds:[0] 1.和[0]类似,[0]表示内存单元,它的偏移地址是0; 2.[bx]同样也表示一个内存单元,它的段地址在DS中 它的偏移地址在bx中,至于是取字还是取字节, 要看他放入的寄存器是原创 2021-04-12 09:47:50 · 1560 阅读 · 1 评论 -
汇编 第四章 第一个汇编程序
第四章 第一个汇编程序4.1 一个源程序从写出到执行的过程编写汇编源程序用文本编辑器(如记事本Nodepad++、UltraEdit等),用汇编语言编写汇编源程序。宏汇编程序(MASM)macroassembler:具有宏加工功能的汇编程序 1.一个汇编语言程序从写出到最终执行的简要过程 编写->编译连接->执行 2.对源程序进行编译连接 1.使用汇编语言编译程序(MASM.EXE)对源程序文件中的源程序进行编译,产生目标文件【.ob原创 2021-04-12 09:42:05 · 516 阅读 · 0 评论 -
汇编 第三章 寄存器(内存访问)
第三章 寄存器(内存访问)3.1 内存中字的存储1.任何两个地址连续的内存单元,N号单元和N+1号单元,可以将他们看成两个存储单元 也可以看成一个地址为N的字单元中的高位字节单元和低位字节单元2.注意:在内存的表示中,从高到低,是从0号单元开始,然后逐渐变大, 即在书写时,低位写在高的地方,高位写在低的地方, 如上图所示:4E20H即是0号字节存储20,1号字节存储4E,如果是0号字则存的是4E20H(字=2字节)3.2 DS和[address]1.8086中有一个DS原创 2021-04-12 09:12:17 · 380 阅读 · 0 评论 -
汇编 第二章 寄存器(CPU工作原理)
第二章 寄存器(CPU工作原理)CPU=运算器+控制器+【寄存器】,cpu内部各个器件之间通过内部总线相连。cpu和主板其他器件通过外部总线相连。8086CPU有14个寄存器,名称分别为:AX,BX,CX,DX,SI,DI,SP,BP,IP,CS,SS,DS,ES,PSW2.1 通用寄存器1.8086CPU所有的寄存器都是16位的,可以存放2个字节2.AX、BX、CX、DX通常用来存放一般性数据 被称为通用寄存器 最大存储2^16-13.8086上一代CPU中的寄存器都是8位的,为了保原创 2021-04-12 09:08:22 · 421 阅读 · 0 评论 -
汇编 第一章 基础知识
第一章 基础知识【学习汇编主要是:学习汇编的编程思想,掌握机器运行的思维】汇编语言是直接在硬件上工作的编程语言,首先要了解硬件系统的结构,才能有效的应用汇编语言对其编程。1.汇编课程的研究重点如何利用硬件系统的编程结构和指令集有效灵活的控制系统进行工作2.汇编语言的主体是汇编指令3.汇编指令和机器指令的差别在于指令的表示方法上汇编指令是机器指令便于记忆的书写格式4.汇编语言时机器指令的助记符5.汇编语言的组成1.汇编指令(机器码的助记符)2.伪指令(由编译器执行)3.其他符号(由原创 2021-04-12 09:07:04 · 110 阅读 · 0 评论 -
汇编语言
第一章 基础知识第二章 寄存器(CPU工作原理)第三章 寄存器(内存访问)第四章 第一个程序第五章 [BX]和loop指令第六章 包含多个段的程序第七章 更灵活定位内存地址第八章 数据处理的两个基本问题第九章 转移指令的原理第十章 call和ret指令第十一章 标志寄存器第十二章 内中断第十三章 int指令第十四章 端口第十五章 外中断第十六章 直接定址表第十七章 使用BIOS进入键盘输入和磁盘读写第一章 基础知识【学习汇编主要是:学习汇编的编程思想,掌握机器运行的思维】原创 2021-04-09 22:18:03 · 1132 阅读 · 0 评论