8086汇编
文章平均质量分 92
8086汇编语言的基本语法
虾仁炖猪心
emmmmmm
展开
-
直接定址标
描述了单元长度的标号(数据标号)以往我们定义一段内存,都是这样的: db 1,2,3,4,5,6,7,8 dw 0,如果为了方便,我们还可以在这些前面加上标号: a:db 1,2,3,4,5,6,7,8 b:dw 0这样的话,如果我们要用这些定义的数据或内存,我们可以通过他们的标号来寻找。但是我们现在有了一种可以使得我们工作起来更方便的定义数据或内存的方法,它不仅包含了内存...原创 2019-02-16 21:03:55 · 290 阅读 · 0 评论 -
8086汇编总结
寄存器通用寄存器有:AX,BX,CX,DX 。通常用来存放普通数据8086CPU的寄存器为16位寄存器,16位寄存器可分为高位和地位,如AX寄存器可以分为:AH,AL 两个8位寄存器。也完全可以看成两个8位寄存器来使用,但如果看成8位寄存器来使用的话,当进行计算时如果结果超出8位,如在AL中计算时,结果如果为1F8,那么最高位将舍去(准确来说那一位并没有舍去,而是存放在了一个特殊的寄存器...原创 2019-09-21 19:18:25 · 666 阅读 · 0 评论 -
汇编--可屏蔽中断和不可屏蔽中断
外中断CPU内部引发的中断称作内中断,外部引发的中断称为外中断。而外中断源分为以下两类:一,可屏蔽中断。二,不可屏蔽中断。可屏蔽中断:可屏蔽中断就是CPU可以不响应这个中断。CPU是否要响应这个中断要看标志寄存器中的IF标志位的值。如果IF标志位等于0,那么CPU则不响应这个中断,如果IF标志位为 1 ,CPU则响应这个中断,所以每次的中断过程中都一个把IF设置为0的动作,就是让CPU...原创 2019-02-15 20:48:39 · 11216 阅读 · 0 评论 -
8086汇编--端口
端口在PC机中通过总线与CPU相连的芯片,除了各种储存器外,还有以下三种芯片:各种接口卡上的接口芯片 主板上的接口芯片,主板通过它们对部分外设进行访问 其他芯片,用来提供相关的系统信息,或进行相关的输入输出处理在这些芯片中,都有一组可以由CPU读写的寄存器,它们都通过自己所在的芯片与CPU的总线所连接。CPU这些寄存器进行读写的时候,都是通过控制线,向这些芯片的端口发出读写命令。...原创 2019-02-14 23:30:32 · 1584 阅读 · 0 评论 -
汇编--中断
int 指令:int 指令的格式为 int n ,n 为中断类型码,用 int 指令,可以随时调用任何一个处理中断程序。执行 int n 相当于引发一个中断类型码为 n 的中断过程。它的步骤和中断过程的步骤是一样的:从中断信息中取得中断类型码 n 标志寄存器入栈,设置 TF ,IF 为0(防止无限进执行单步中断) 将CS,IP 入栈 将CS:IP设置为指向处理中断程序的入口使...原创 2019-02-13 20:19:19 · 1006 阅读 · 0 评论 -
汇编----中断
内中断 任何一种通用的CPU都有一种能力,就是在执行完当前正在执行的任务后,可以检测到CPU内部或外部的某种特殊信息,并且立刻对所收到的信号进行处理。这种特殊信息我们称为中断信息。中断的意思是,在执行完当...原创 2019-02-12 21:03:59 · 1330 阅读 · 0 评论 -
汇编----标志寄存器
flagflag和之前所学的寄存器都不一样,它是8086CPU中的标志寄存器。它具有以下三种功能:用来存储相关指令的某些执行结果 用来为CPU执行相关指令提供行为依据 用来控制CPU的相关工作方式这个标志寄存器有16位,其中存储的数据我们称之为程序状态字。和其他寄存器不同,其他寄存器整个包含一个信息,而标志寄存器每一位都包含一个信息。这是flag寄存器的各位示意图。它的 1 ...原创 2019-02-11 21:12:48 · 793 阅读 · 0 评论 -
汇编--call和ret指令
CALL和RET指令:RET指令ret指令:用栈中的数据修改IP,从而实现近转移。使用ret时,相当于pop IP。 retf指令:用栈中的数据修改CS和IP,从而实现远转移。相当于 pop ip pop cs。CALL指令根据位移进行的转移:CALL 标号 。 这个指令会将当前IP内的值压入栈,然后再转移到标号处进行指令。相当于 push ip jmp near ptr...原创 2019-02-10 20:08:28 · 631 阅读 · 0 评论 -
汇编--转移指令
转移指令: 修改IP或同时修改CS和IP的行为称为转移指令。8086CPU的转移指令有:无条件转移指令(JMP) 条件转移指令 循环转移指令(如:LOOP) 过程 中断80886CPU的转移行为:段内转移:只修改IP。段内转移又有短转移和近转移,近转移范围更大。 段间转移:同时修改CS和IP操作符OFFSET:操作符offset可以取...原创 2019-02-10 11:53:36 · 605 阅读 · 0 评论 -
汇编 数据处理
总结:寄存器 BX ,SI,DI,PB:8086CPU的寄存器:AX,BX,CX,DX,AH,AL,BH,BL,CH,CL,DH,DL,SP,BP,SI,DI段寄存器有:CS,SS,DS,ES而,在8086CPU中只有4中寄存器可以用在[.....]中进行寻址。分别是:BX,BP,SI,DI 比如mov ax,[bx]是对的,而mov ax,[cx]就是错的。而要用灵活寻址的方...原创 2019-02-04 20:48:40 · 215 阅读 · 0 评论 -
汇编_and,or
更灵活的定位方法:and , or 用and时进行相与运算,如 : mov al,01100011B 把二级制数01100011存入寄存器。然后 and al,00111011B。使用 and 将al中的数和后面的数进行相于运算,得到的结果再存入al中。相于运算就是每位对齐,如果都是1,那么那一位就是1,其他情况都为0。用 or 进行运算时,进行或运算。用法和上面一...原创 2019-02-03 23:33:47 · 5024 阅读 · 1 评论 -
汇编——栈段
在代码段中使用数据: dw 可以定义字型数据: dw 0123h , 0033h ,0ff4h , 0ac3h 这样就定义了4个字型数据,占8个字节。也可以这样定义数据,dw 0,0 ,0, 0, 0, 0, 0, 0 这样就定义了8个字型数据。dw 定义的都是字型数据。那么当我们在源程序中写上了这样一行代码,运行程序时,...原创 2019-02-03 12:27:18 · 3001 阅读 · 1 评论 -
汇编——loop
inc 寄存器 这个指令将后面那个寄存器里面的值加一LOOP指令:loop指令是汇编语言中的一个循环指令。是根据寄存器CX中的值来进行的,每次运行到LOOP,先将CX中的值减一,如果不为0,就运行后面标号中的内容。类似于这样,这个中间的代码会运行12次。我们在记事本中编写一个汇编程序:然后用masm对它编译,创建一个目标文件,再用link连接那个...原创 2019-02-03 19:31:18 · 10638 阅读 · 0 评论 -
汇编语言——用dosbox进行编译连接
寄存器(内存访问):字单元:储存一个字型数据的单元,一个字型数据有16位,由两个连续的内存单元组成。字型数据也分为高位字节和低位字节。一般将字单元的起始地址作为字单元的名称。如n地址字单元。DS寄存器以及字的传送:我们可以用命令直接将一个内存单元中的内容送入到一个寄存器中,只需要给出那个内存单元的偏移地址。如:mov al,[0]但是这样只给出了偏移地址,没有段地址。这里就要说到寄...原创 2019-01-31 23:55:23 · 3704 阅读 · 0 评论 -
汇编入门——寄存器,段,debug指令和简单的DOSBox操作
存储单元: 存储器被划分为若干个存储单元,一个存储单元有一个字节也就是八个bit,也就是八位。可以存储八个二进制位。CPU: CPU通过总线将电子信息传递到存储器。因为CPU要对存储器进行读写的话,就要传递要读写的数据的地址,数据内容,以及要对数据进行什么操作。所以总线包括:数据线,地址线,控制线。如:CPU要对某一个存储单元进行操作...原创 2019-01-30 23:04:02 · 2293 阅读 · 0 评论