微机原理期末应急复习总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

开篇寄语:这些是个人一开始什么都不懂的时候的傻瓜式的总结,不知道大家有没有耐心看完,但是希望大家尽量吧,祝大家考个好成绩。

O(∩_∩)O

高手让路

“梅毒”症状严重者专用

8086寻址方式

标志寄存器说明:(1) 常用的有CF ZF SF OF PF 要牢记

(2)负零进位偶溢出=SZCPO(个人记忆小诀窍,当SZCPO F=1的时候)

(3)相关指令:CLC STC CMC CLI STI CLD STD

CF:清零置1 取反IF:清零置1 DF:清零置1

(有没有发现,CL*的就是清零,ST*的就是置1)

(4)DF=1的时候,用loop lop神马的,CX自减1 反之自增1 其它不管

常用的指令系统

一、计算类的指令:

只管记住以下这些就好了,要用就用,神马带不带进位,不理它

(1)ADD A,B A=A+B

ADC A,B A=A+B+FC

DEG A A=A-1

INC A A=A+1

SUB A,B A=A-B

SBB A,B A=A-B-CF

NEG A A=-A

CMP A,B A-B 但是不改变A或B的值,只改变标志寄存器(参考第一页)的值例MOV AL,10

CMP AL,10 (这时候标志寄存器值改变,AL>10减法无借位,则CF=0)

JZ NEXT1 (JZ指令:当CF=1的时候跳转到NEXT1处继续执行,

但CF=0,所以不跳转,直接执行下一条指令)

JNZ NEXT2 (JNZ指令:当CF=0时跳转到NEXT2处继续执行,此时

CF=0则跳转到NEXT去了)

NEXT1:XOR AX,AX

NEXT2: MOV AH,4CH

INT 21H

这条指令之所以花如此大篇幅介绍,是因为它实在太常用啦!

(2)IMUL A AX=AL*A(关键在于A的类型,如果A是字节类型的也就是8位2进

制数的时候,结果存放在AX中,如果A是字类型的16位,

高8位存在DX中,低8位放在AX中,以下相同)MUL A 同IMUL,只是IMUL做乘法的时候,符号位只要注意的,0表示负数,

1表示正数,在计算的时候要注意是否是有符号运算,但是

目前来看,我们还是比较少接触到有符号数乘法的,所以常

用MUL,希望不要考有符号数吧

IDIV A AL=AX/A的商AH=AX/A的余数(字运算的时候DX保存余数)DIV A同IDIV,这个是无符号的

二、逻辑运算指令

AND A,B A=A 与B (1+1=1 ,1+0=0 ,0+0=0 )

常用举例:AND AX,86H (86H=10000110,则其中第1、6、7位是1,和AX与之后,A的第1、6、7位不变,其他位清零了)

OR A,B A=A或B (A或B其中一个为1的时候,A=1)

常用举例:OR AX,86H (86H=10000110,则其中第1、6、7位是1,和AX或之后,A的第1、6、7位变成1,其他位不变)

XOR A,B A=A异或B (AB相同的时候A=1,不同的时候A=0)

常用举例:XOR AX,AX 一对比就知道,AX和AX自然是全部都一样,所以每位都变成0,于是AX就被清零了

TEXT A,B A 与B 置标志位,不改变A和B的值,有点类似CMP(见计算相关指

令)的功能

NOT A A按位取反,相比NEG,NEG是求相反数,NOT是1和0互换

三、串操作指令

MOVS 把DS:SI所指内容传给ES:DI,同时修改DI和SI的值(DI+1 SI+1)

CMPS DI:SI-ES:DI 置标志位,功能类似CMP,只是应用范围不一样

SCAS 把AX/AL内容和ES:DI进行比较,AX/AL-ES:DI置标志位,修改DI的值LODS DS:SI所指内容传送到AX/AL中

STOS AX/AL中的内容传送到ES:SI所指的内存中

对于以上所有指令,均没有操作数,但是每个指令后面都必须加一个字母表示类型,B 表示字节类型(参考IMUL指令说明了解字节类型,W表示字类型,例MOVSB表示传送一个字节,MOVSW表示传送一个字)

四、移位指令:

SHL/SAL

横(向传输)

SAR

SHR 跟SHL相反,R和L的区别

ROL

ROR 同ROL,方向改变,不解释

RCL

CF

旋(转一圈)不解释

(记忆小秘诀:发现没,“超”越)(S)旋横(RR)起跳(S)对齐一下,我就这么记的,求小鄙视 C H A O

五、其他一些常用指令

LEA BX,TABLE 把标号TABLE指示的地址存在BX中

PUSH/POP 进出栈,每执行一次PUSH,SP-2,POP则SP+2 条件转移指令指令详细见P105只要记住一个就可以记住两个,

一般是这样

说明:在执行条件转移指令之前一般都会先设置标志寄存

器(见第一页)的值

所谓设置标志寄存器的值,就是用计算让标志寄存器改变例如:CMP AX,BX这样不会影响AX和BX的值,但是会改变标志寄存器的值,相关的,加减乘除法指令(见

计算指令)都会改变标志寄存器的值,但是同时也会改变

AX的值,灵活使用起来就是可以在计算后直接使用条件转

移指令,就不需要CMP了

例:见计算相关指令CMP指令说明

汇编程序格式及相关

一、数据段:

DATA SEGMENT (AT [****h])括弧内选填,看题目要求定义变量

DATA END(反正有几个变量定义几个变量就可以结束了)关于定义变量:假如你完全不会,那么题目中有几个英文的,有几个数字,就这么写:英文字母DB 数字,?,数字DUP(?)然后稍微看一下对应一下哪个英文字母对应哪个数字,实在不行随便

相关文档
最新文档