![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
汇编语言
GM_AMRC
这个作者很懒,什么都没留下…
展开
-
标志寄存器(flag)
8086CPU的标志寄存器有16位,其中储存的信息通常被称为程序状态字。其他寄存器时用来存放数据的,整个寄存器具有一个含义。flag寄存器是按位起作用的,它的每一位都有专门的含义,记录特定的信息。8086CPU的flag寄存器的结构15 14 13 12 11 10 9 8 7 6 5 4 3 2...原创 2019-08-13 16:02:36 · 2204 阅读 · 0 评论 -
转移指令的原理
8086CPU的转移指令分为以下几类:无条件转移指令(如:jmp)条件转移指令循环指令(如:loop)过程中断1、操作符offsetoffset在汇编语言中是由编译器处理的符号,它的功能是取得标号的偏移地址。例: mov si,offset s含义:将标号s处的偏移地址送入si中。2、jmp指令为无条件转移指令,可以只修改ip也可以同时修改cs和...原创 2019-08-12 21:45:49 · 601 阅读 · 0 评论 -
数据处理的两个基本问题
两个基本问题:处理的数据在什么地方?要处理的数据多长?计算机是进行数据处理、运算的机器。描述性符号 reg 寄存器 sreg 段寄存器reg的集合包括:ax bx cx dx sp bp si disreg的集合包括: ds ss cs es1、bx、si、di、dp只有这四个寄存器(bx、si、di、dp)可以用于[……]中来表示内存...原创 2019-08-12 15:59:25 · 215 阅读 · 0 评论 -
更灵活的定位内存地址的方法
1、and和or指令and指令:逻辑与指令,按位进行与运算技巧:通过该指令可将操作对象的相应位设为0,其他位不变or指令:逻辑或指令,按位进行或运算技巧:通过该指令可将操作对象的相应位设为1,其他位不变2、ASCII码编码方案,就是一套规则,它约定了用什么样的信息来表示现实对象。例:61H表示‘a’3、以字符形式给出的数据在汇编语言中,用‘……’的方式指明数据以...原创 2019-08-12 10:49:10 · 255 阅读 · 0 评论 -
包含多个段的程序
1、代码段中使用数据例:assume cs:codesgcodesg segmentdw 0123H,0456H,0789H,0abcH,0defH,0fedH,0cbaH,0987H mov bx,0 mov ax,0 mov cx,8 s: add ax,cs:[bx] add bx,2 ...原创 2019-08-11 22:20:51 · 160 阅读 · 0 评论 -
[BX]、loop、inc、dec指令
1、[BX][BX]表示一个内存单元,它的偏移地址在bx中。mov ax,[bx]功能:bx中存放的数据作为一个偏移地址EA,段地址SA默认在ds中,将SA:EA处的数据送入ax中。2、符号(约定方便阅读和理解)描述性符号“()”表示一个寄存器或一个内存单元中的内容。例:ax中内容为0010H(ax)=0010H对于mov ax,[2](ax)=((ds)*...原创 2019-08-11 20:56:49 · 5502 阅读 · 0 评论 -
第一个程序
1、一个源程序从写出到执行的过程 概述:编写-->编译连接-->执行 编写汇编源程序:使用文本编辑器(如记事本、Nodepad++、UltraEdit等),后缀名(.asm) 编译连接:使用汇编语言编译程序(MASM.EXE)对源程序进行编译生成目标文件,再用连接程序(LINK.EXE)对目标文件进行连接生成在操作系统中直接运行的可执行文件。...原创 2019-08-11 14:39:17 · 215 阅读 · 0 评论 -
寄存器(内存访问)
1、内存中字的存储高地址存储高位,低地址存储地位。例:0号单元是低地址单元,1号单元是高地址单元任何两个地址连续的内存单元,N号单元和N+1号单元,可以将它们看成两个内存单元,也可以看成一个地址为N的字单元中的高位字节单元和地位字节单元。2、DS和[adress]CPU要读取一个内存单元的时候,必须先给出这个内存单元的地址。在8086PC中,内存地址的段地址和偏移地址组成。...原创 2019-08-10 22:12:55 · 548 阅读 · 0 评论 -
外中断和直接定址表
CPU 除了有运算能力外,还要有I/O(input/output)能力。外设接口芯片的内容有若干寄存器,CPU将这些寄存器当做端口来访问。CPU通过端口和外部设备进行联系。外中断信息外中断源有两类:可屏蔽中断和不可屏蔽中断(要看标志寄存器IF的设置)IF=1 响应中断IF=0 不响应中断设置IF指令sti 用于设置IF=1cli 用于设置I...原创 2019-08-14 20:08:48 · 132 阅读 · 0 评论 -
寄存器(CPU工作原理)
CPU概述一个典型的CPU由运算器、控制器、寄存器等器件组成,这些器件考内部总线相连。8086CPU有14个寄存器: AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW1、通用寄存器8086CPU所有的寄存器都是16位的,可以存放两个字节。AX、BX、CX、DX通常用来存放一般性数据被称为通用寄存器。一个16位寄存器能存储...原创 2019-08-10 14:24:39 · 1329 阅读 · 0 评论 -
int指令和端口
int指令格式:int n (n为中断类型码)功能:引发中断过程执行过程:取出中断类型码n 标志寄存器入栈,IF=0,TF=0 CS、IP入栈 (IP)=(n*4)、(CS)=(n*4+2)int可以调用任何中断程序。int指令的最终功能和call类似,都是调用一段程序。系统将一些具有一定功能的子程序以中断处理程序的方式提供给应用程序调用。调用供应用...原创 2019-08-14 15:23:48 · 686 阅读 · 0 评论 -
基础知识
汇编语言是直接在硬件上工作的编程语言,要有效的应用汇编语言编程就需要先了解硬件的系统结构。研究重点:如何利用硬件系统的编程结构和指令集有效灵活的控制系统工作。1.机器语言 是机器指令的集合。 机器指令展开来讲就是一个机器可以正确执行的命令。2.汇编语言 组成:汇编指令(主体)、伪指令(由编译器执行)、其他符号(由编译器识别) 汇编指令决定了汇编语言的特性。...原创 2019-08-09 21:18:13 · 193 阅读 · 0 评论 -
内中断
中断是CPU处理外部突发事件的一个重要技术。它是CPU在运行过程中对外部事件发出的中断请求及时地进行处理,处理完成后又立即返回断点,继续进行CPU原来的工作。中断源:发出中断请求的来源中断:软件中断(并不是真正的中断),硬件中断硬件中断又分为外部中断(可屏蔽)和内部中断(不可屏蔽)内部中断是指因硬件出错(如突然掉电、奇偶校验错误)或运算出错(除数为0,运算溢出,单步...原创 2019-08-14 09:35:54 · 1913 阅读 · 0 评论 -
call和ret指令
call和ret指令都是转移指令,它们都修改ip,或同时修改cs和ip。1、ret和retfret指令用栈中的数据修改ip的内容,从而实现近转移。CPU执行ret指令时,进行下面两步操作:(ip)=((ss)*16+sp)(sp)=(sp)+2相当于pop ipretf指令用栈中的数据修改cs和ip的内容,从而实现远转移CPU执行retf指令时,进行操作...原创 2019-08-13 10:29:35 · 955 阅读 · 0 评论