[电脑基础知识]微机原理上课笔记.doc

上传人:sccc 文档编号:4558989 上传时间:2023-04-27 格式:DOC 页数:84 大小:8.29MB
返回 下载 相关 举报
[电脑基础知识]微机原理上课笔记.doc_第1页
第1页 / 共84页
[电脑基础知识]微机原理上课笔记.doc_第2页
第2页 / 共84页
[电脑基础知识]微机原理上课笔记.doc_第3页
第3页 / 共84页
[电脑基础知识]微机原理上课笔记.doc_第4页
第4页 / 共84页
[电脑基础知识]微机原理上课笔记.doc_第5页
第5页 / 共84页
点击查看更多>>
资源描述

《[电脑基础知识]微机原理上课笔记.doc》由会员分享,可在线阅读,更多相关《[电脑基础知识]微机原理上课笔记.doc(84页珍藏版)》请在三一办公上搜索。

1、第一章1 引言计算机系统 硬件主机+外设 软件系统软件+应用软件 语言语言:机器语言面向机器语言,由二进制数组成(0,1,0,1)特点:计算机直接执行,速度快,人不易记忆汇编语言采用助记符,如ADD表加法,SUB表减法特点:需编译,快,可记忆源程序 编译软件 可执行文件(二进制文件0,1,0,1)高级语言面向对象,与机器无关如:VC 、VB、pascal 特点:编译方便记忆,编译速度慢,占内存大汇编语言应用在计算机控制中(硬件)高级语言应用在管理和科学计算中主要学习;Intel 8086/8088 CPU 为蓝本的汇编语言2数制一、 常用, ,掌握这几种数制表示方法和相互转换 10101100

2、B2# 171Q8#1234D(或不写) 10# 1ACFH16#对于16,如A1D6H0A1D6H F112H0F112H 第一个以AF开头前加0二、 二一十进制(BCD)作用 表示方法:8421码 BCD用四位表示一位10# BCD 15的BCD=0001 0101B 0 0000 123的BCD=0001 00100011B 1 0001 1000 0111B87 9 1001 非压缩BCD码:用一个字节(8位)表示为BCD如: 8 0000 1000B7 0000 0111B 高4位为0 低4位为值如:87占用2个字节 8 0000 1000B7 0000 0111B 压缩BCD码:用

3、一个字节(8位2#)表示二位BCD87 1000 0111B 一个字节三、字母与字符编码 09 az AZ / 统一编码,用于输入/输出之用用7位2#来表示 27= 128字符编码方式ASCII码 编码表 书P3500110000B30H10110001B31H90111001B39HA1000001B41HB42H差20HF46H a 1100001B61H b 62Hf66H 3 码制数在计算机中用2#表示,但负数怎样表示?三种方法:一、原码:用最高位表符号如: 一个数用8位2#表示 D7 D6D5D4D3D2D1D0 符号 表数值 如: 一个数用16位2#表示 D15 D14D0 符号

4、表数值如:X=105 X原 01101001B 符号 值如:X105 X原11101001B如:0原00000000看8位2#(无符号)数 00000000B11111111B 即 0255原码表示范围:11111111B01111111B 即 127+127二、反码 X反 X 当X0 当X00原0原0原0原000000000原11111111如:X4100B X反00000100B X反11111011B表示范围:127127三、补码 X 当X0 X补 X反1 当 X0 指最低位D0 0补00000000X4 X补00000100B X补111110110000000111111100B补码

5、:128+127 128补10000000 127补01111111补码定理:XY补X补Y补优点:表示负数 减法变成加法如:641054 6410补64补10补0100000011110110 100110110 自然丢失 结果 其中10补00001010 10补111101010000000111110110即6410补00110110 而0110110B54 641054通式:若XY补X补Y补Z +Z 当Z最高位为0则X-Y Z1反 当Z最高位为1 如 5105 510补5补10补000001011111011011111011 则5101111101100000001反00000101B

6、5写法:XY补 XY第二章8086/8088 CPU结构 1 组织结构 五大组成: CPU(含运算器和控制器) 存储器输入/输出设备总线(DB,AB,CB)关系:以CPU为核心,三总线结构1, CPU 1片IC 运算和控制协调全体工作2,存储器 IC 存放程序和数据和文件 内存RAM或ROM构成 存储器外存硬盘,光盘衡量存储器单位 容量:指有多个存储单元或字节存储器 单位:一个单元(字节)1024字节1K字节1024K字节1M1024M1G1024G1T常用内存:512M10241024512(字节)外存:160G 存储长度:每个单元能放几位2#数存储器一般为8位或16位 一个字节 二个或一个

7、字节对8086/8088CPU存储器,长度为一个字节。 存储地址对每个单元进行编号,地址用16#表示有一个64K存储器,有641024=65536个单元06553500FFFFH字母开头,加0 3/4、输入/输出5、总线地址总线(AB)寻址存储地址,对于8086/8088AB有20根线AB是单向(CPU存储器) 可接存储器:2201048576 地址为01048575 即:00FFFFFH 1M数据总线(DB)传送数据和命令 DB是双向的 DB81(根) CPU 存储器(写操作) CP U 存储器(读操作)控制总线(CB)送控制信号,接受状态信号出 入 2 CPU内部结构8086/8088CP

8、U ICAB为20位,DB为 8位 对808816位 对8086一、 内部结构P53运算器 控制器 ALU 地址生成信号状态二、 内部寄存器什么叫寄存器? 位置在CPU内部 作用放运算前数据或运算后结果1、 通用寄存器16位数据寄存器:AX,BX,CX,DXAH高8位 16位同时:AX AL低8位 BH CH DH同样:BX CX DXBL CLDL AH=12H如:AX1234H,等同于 其中AX称为累加器AL=34H变址寄存器:SI,DI,16位,用于变址寻址堆栈寄存器:SP,BP,16位,用于堆栈操作2、 指令指针寄存器:IP,16位放得执行指令所在地址,具有自动加工功能、标志寄存器F(

9、flag):反映ALU中运算结果状态 16位:D15D0 书P57 其中只有9位 CF:进位(借位标志)字节操作(8位)时,最高位为D7字节操作(16位)时,最高位为D15 最高位有进位/借位时 CF=1 CF=最高位无进位/借位时 CF=0 PF(奇偶性标志)11的个数为偶PF00的个数为奇 ZF(零标志) 1,结果为0 ZF 0 ,结果不为0 SF(符号标志)SF与结果最高位相同(D7 D15)0,结果为正SF1,结果为负中高位用于程序中分支中C,Z,P,S等9个 、段寄存器 CS代码寄存器(程序) DS数据寄存器均为16位 SS堆栈寄存器 ES附加寄存器注:不用于计算,等,用于扩大寻址范

10、围(访问存储器地址)8086/8088 AB20(根) 2201M(空间),而段寄存器为16位,21664K(空间) 存储器分段和物理地址形成 21664K1M扩大寻址范围存储器分段方法:把1M分成16段,每段为64K 采用动态访问法:把该段起始地址放入段寄存器中,而在段内用相对于段起始地址的唯一表示,该唯一称为偏移量。物理地址(有效地址)EA段地址16偏移量 相当于左移4位(对2#) 相当于左移1位(对16#) EA10000H1000000000EA1000H160001 10001 EA1000H160FFFF10000H0FFFF1FFFFH 转换:在CPU内用专有电路完成在编程中习惯

11、用段地址、偏移量来表示存储单元地址如:存储器中某段段地址为2950H,某单元偏移量为0100H 则EA2950H160100H29600H 即: 、四个段地址分工使用约定:程序段(代码):CSIP数据段(代码):DS若干寄存器或存储器堆栈段(代码):SSBP(或SP)附加段(代码):ES若干寄存器或存储器放段地址 放偏移量 、说明:在1M空间使用动态分配,可分成四个段,四个寄存器访问1M空间 第三章 指令系统1、寻址方式寻址:寻找操作数所在地址的方式立即数 操作数为 在寄存器中在存储器中 难点、重点:寻存储器的地址,方式寄存器,存储器区别:位置:寄存器在CPU内部,存储器在CPU外部地址:寄存

12、器用代号,存储器用段地址,偏移量表示长度:寄存器可当16位或8位用,存每一个单元长度为8位1、 立即数寻址:用于给存储器或寄存器赋初始值指令:MOV AX,1234H;AX1234H执行后:AX=1234H 即:AH=12H ,AL=34H 在存储器的存储方式: 指令:MOV AX,1181H执行后:AX=1181H 指令:MOV BL,56H;BL56H执行后:BL=56H 2、 直接寻址:指令中给出存储器的偏移量,隐含用DS作段地址指令:MOV AL,22A0H寄存器(8位) 存储器(8位) 执行过程:寄存器(8位)存储器(8位)存储器段地址在DS中,偏移量为22A0HALDS:22A0H

13、如果 DS=3000H (322A0H)=12H 则:EA=DS1622A0H=3000H1622A0H=322A0H即: 执行后:AL=12H即: 指令:MOV 22A0H,AL存储器(8位)寄存器(8位)指令:MOV AX,22A0H寄存器(16位) 存储器(16位) 则:AL=(322A0H)=12H AH=(322A1H)=0ABH即:AX=0AB12H高8 低8 存储器低地址中内容作低8位AX存储器高地址中内容作高8位指令:MOV 22A0H,AX存储器(16位) 寄存器(16位)另:段超越 MOV AX,ES:22A0H存储器ES:22A0H3、 寄存器寻址:操作数在寄存器中指令:

14、 MOV AX,BX;AXBXMOV DH,CL;DHCLADD AX,BX;AXAXBX但: MOV AX,BL MOV AH,BX 不平衡,指令有语法错误MOV 16位 , 16位平衡原则 MOV 8位 , 8位4、 寄存器间接寻址:操作数的偏移量在寄存器中SIEA=DS16DI 中偏移量规定 或BXEA=SS16BP 中偏移量 指令:MOV AH,SI寄存器(8位) 存储器(8位) 若:(DS)=2000H,(SI)=1000H,(21000H)=12H 则:EA=DS16(SI)=21000H 执行后:AH=12H指令:MOV SI,AH指令:MOV AX,SI寄存器(16位) 存储器

15、(16位) 若:(DS)=2000H (21000H)=12H (低8位)(21001H)=34H (高8位) 执行后:AX=3412H 5、 变址寻址下面三种格式等效: MOV AX,BXnMOV AX,nBXMOV AX,BXn存储器EA=DS16(BX)n段地址 偏移量 指令:MOV SI10H,AX存储器(16位) 寄存器(16位)过程:若DS=3000H,SI=2000H,AX=4050H 则:EA=DS16SI10H=32010H 执行后:(32010H)=50H (32011H)=40H指令:MOV CX,BX1050H 寄存器(16位)存储器(16位)若:DS=3000H,BX

16、=1000H则:EA=DS16BX1050H=32050H 6、 基址加变址寻址:用BX,BP作基址,SI,DI作变址EA=(DS)16BXSI(或DI)n或EA=(SS)16BPSI(或DI)n段地址偏移量指令:MOV AX,BXSI10H寄存器(16位) 存储器(16位)EA=DS16BXSI10H 段地址 偏移量 EA1指令:MOV BPDI50H,BX 存储器 寄存器 EA=SS16BPDI50H 段地址 偏移量EA1 若DS=1200H,BX=05A6H,SI=2000H,n=1618H SS=5000H,BP=40A0H,DI=3 MOV AX,O618H EA=DS160618H

17、=12618HEA1=12619H MOV AX,BXEA=DS16BX=125A6HEA1=125A7H MOV AX,BPEA=SS16BP=540A0HEA1=540A1H MOV AX,DIEA=DS16DI=15000H (15000H)ALEA1=15001H (15001H)AHAX MOV AX,BXDIEA=DS16BXDI=155A6HEA1=155A7H MOV AX,BXDInEA=DS16BXDIn=576B8HEA1=576B9H 2 指令系统一、 数据传送指令格式: MOV 目标操作数,源操作数;源,目相等功能:目标操作数(源操作数) 源不变1、 寄存器寄存器MO

18、V AX,BX MOV DL,CL MOV BL,DX MOV AX,CL 2、 寄存器存储器MOV AX,1100H ;寄存器(16位)存储器(16位)MOV BUF,AH ;存储器(8位)寄存器(8位)MOV BXDI,BX ;存储器(16位)寄存器(16位)3、 寄存器立即数MOV AL,11H ;AL=11HMOV SP,1000H;SP=1000HMOV BH,1000H MOV 11H,AX 4、 存储器立即数MOV 1100H,11H 应为MOV WORD PTR1100H,11H;按字送(16位) 或字 MOV BYTE PTR1100H,11H;按字节送(8位)字节注意:、不

19、能实现:存储器存储器MOV 1000H,2000H MOV AX,2000H但 :可用MOV 1000H,AX、CS内容不可人为改变,由OS定 MOV CS,AX 但 MOV AX,CS PUSH CS POP CS (试图改变CS内容,错误)举例:数据块搬家:分析:(d1)d2(d1+1)d2+1(d1+2)d2+2 (d1+99)d2+99解:方法一:逐个搬家连续搬100次MOV AL,d1MOV d2,ALMOV AL,d1+1MOV d2+1,ALMOV AL,d1+99MOV d2+99,AL 方法二:循环程序MOV SI,offset d1 ;把d1偏移量放入SI中 MOV DI,

20、offset d2 ;把d2偏移量放入DI中MOV CX,100 ;计数器 L:MOV AL,SIMOV DI,ALINC SI ;SISI1INC DI ;DIDI1DEC CX ;CXCX1JNZ L ;若CX=0,结束,若CX0,转L5、 堆栈指令特点:在存储器中开辟一块空间(在RAM中)SP总是自动调整指向栈顶具有“先进后出”“后进先出”特性(子弹夹原理) 入栈时SP自动减2 出栈时SP自动加2、 PUSH指令(压栈)格式:PUSH OPRD;OPRD为16位寄存器或存储器过程:SPSP1,(SP)OPRDH;先进高8位SPSP1,(SP)OPRDL;后进低8位例:SS=1000H,S

21、P=0FFFFH MOV AX,1632H PUSH AX执行前:执行后: SP=SP2=0FFFDH AX=1632H、 POP指令(弹出) 格式:POP OPRD ;OPRD为16位寄存器或存储器 过程:OPRDL(SP),SPSP+1;先出低 OPRDH(SP),SPSP+1;后出高执行前, 执行POP BX 后:BX=1632HSP=SP2应用: PUSH AX POP CX PUSH BX POP BX PUSH CX POP AX注意:、只允许接16位压栈,不允许接8位 、POP CS Push CS 6、 数据交换XCHG OPRD1,OPRD2 (均为16位或8位寄存器或存储器

22、),两边平衡但,不可:存储器存储器 XCHG AX,BX;AX BX XCHG AH,CL;AH CL XCHG BH,1000H;BH 1000H 交换一个字节 XCHG BX,1000H;BX 1000H 交换一个字7、 地址传送指令格式:MOV OPRD1,offset OPRD2为16位寄存器 为地址变量名功能:计算偏移量并放入寄存器中12H 如:MOV SI,offset aaaa 或MOV AL,aaMOV AL,SI;AL=12H算术类1、 加注、 不带进位(C) ADD OPRD1,OPRD2;OPRD1OPRD1OPRD2寄存器或存储器寄存器或存储器(16位或8位)(立即数)

23、两边平衡 但:不许两边均为存储器 如:ADD AX,25;AXAX25 ADD AH,25;AHAH25ADD BX,SI;BXBXSIADD 1000H,AL;8位ADD SI,DI ADD 11H,DX 若:DS:BX=1000:0000(1000:0000)=01H(1000:0001)=20H 执行: ADD BYTE PTRBX,0FFH ADD WORD PTRBX,0FFH 执行后:(1000:0000)=01H0FFH=00H(1进C) (1000:0001)=20H(不变) 执行后:2001H0FFH=2100H 则:(1000:0000)=00H(1000:0001)=21

24、HADD BX,01H 带进位(C)ADC OPRD1,OPRD2;OPRD1OPRD1+OPRD2+C 用于多字相加 若:1234 5678H8756 4321H高字 低字 高字 低字MOV AX,5678H; ADD AX,4321H; 自动置C MOV DX,AX; 存放低字的和 MOV AX,1234H; ADC AX,8756H; MOV CX,AX; 存放高字的和 结果在CX DX中WH WLTH TL YH YL 第一个字相加用ADD,第二个字以后相加用ADC、组合BCD码调查 格式:DAA 作用:对和存于AL中的结果进行BCD码调查 举例:计算 183=21(BCD) MOV

25、AL,18H ;18H为BCD码 ADD AL,03H;AL=18H03H=1BH DAA ;AL=21H(BCD) 注:DAA紧跟ADD或ADC后面、加1指令 INC OPRD ;OPRDOPRD1 ;OPRD为寄存器或存储器 ;8位或16位 如:INC CX;16位 INC AH;8位 INC DL;8位 但:INC SI ;存储类型不明确 按字:INC WORD PTR SI 按字节:INC BYTE PTR SI 循环程序中修改指针:INC SIINC DI2、 减法 不带进位SUB OPRD1,OPRD2;OPRD1OPRD1OPRD2同ADD,实现单字减法 带借位减SBB OPRD

26、1,OPRD2;OPRD1OPRD1OPRD2C实现多字减法如:97345678H12349867H MOV AX,5678H SUB AX,9867H MOV BX,9734H SBB BX,1234H 差在BXAX 减1DEC OPRD;OPRDOPRD1用于修改计数器如:MOV CX,100DEC CX 比较指令CMP OPRD1,OPRD2;OPRD1OPRD2;置F中标志位用于判断两个数之间的关系(、 )如:判断AL中数是否50?CMP AL,50;AL50 ;置F中各位,若C0则AL50,若C1,则AL50JC LL;若C1则转LL,若C0,则不转顺序执行CMP AL,50JC L

27、L;AL50,则转LL ;AL50,不转 如:AX=100?CMP AX,100;置Z标志位,若Z=1,则AX=100,Z=0,则AX100JZ LL ;Z=1转LL,Z=0,不转3、 乘法 无符号数MUL OPRD; OPRD为字节;AXALOPRD(16位8位8位) OPRD为字;DXAXAXOPRD(32位16位16位)OPRD为寄存器或存储器如:MUL BX;DXAXAXBX MUL DH;AXALDH MUL WORD PTRSI;DXAXAXSI 按字 MUL BYTE PTRDI;AXALDI 按字节如:12H34H=? MOV AL,12H MOV BL,34H MUL BL;

28、AX=积 有符号IMUL OPRD;定义同前 用补码表示如:(12H)(34H)=?4、 除法 无符号数DIV OPRD; OPRD为字节;ALAXOPRD,AH余数;(8位168)OPRD为字;AXDXAXOPRD,DX余数;(16位3216)如:DIV CX,DXAXCXDIV BL,AXBL 如:1234H21H=?MOV AX,1234HMOV BL,21HDIV BL;AL商;AH余数 如:81H11H或7511H1121H扩成16位扩成32位对无符号数,前加“0” 有符号IDIV OPRD ;定义同前,用补码表示二、 逻辑类指令 实现按位操作,无进位1、 与 ANDAND OPRD

29、1,OPRD2;OPRD1OPRD2OPRD1存储器或寄存器存储器或寄存器,立即数如:AND AX,BX AND AL,CH AND DI,AL AND DX,1000H置某几位为0如:把AX中最高位置0,其余不变 AND AX,7FFFH,0111 1111 1111 1111B2、 或OR:用于置“1”操作OR OPRD1,OPRD2;OPRD1OPRD1或 OPRD2如:把AL中的D7=1,其余位不变OR AL ,80H3、非NOTNOT OPRD;OPRD 注:NOT DI NOT WORD PTRDI或NOT BYTE PTRDI。4、异或XOR:检测二者是否相等或用于对寄存器内容和

30、C中内容清0。 XOR OPRD1,OPRD2;OPRD1OPRD1OPRD2 如:XOR CX,CX;CX=0 ;C=05、测试TEST:对寄存器或存储器中某几位状态进行测试(判断是0?1?)TEST OPRD1,OPRD2;OPRD1OPRD2 ;置F中各位如:看AL中是否为正数,为正则转移,为负则不转。 TEST AL,80H JZ PO:ZF=1;转 负处理 PO: 正处理若D7=0(正),结果为0若D7=1(负),结果不为0四、移位指令1、 一般移位(1) 逻辑左移SHL OPRD,COUNT;OPRD为寄存器或存储器(16位或8位);COUNT为移位次数移1次,COUNT=1 移多

31、次,COUNT=CL;CL为寄存器 对无符号数,左移一次相当于乘以2;左移N次相当于乘以 SHL AX,1 SHL BL,1 MOV CL,2 SHL AX,CL 例:MOV AL,07H SHL AL,1;AL=0EH ;07H2=0EH(2)逻辑右移 SHR OPRD,COUNT 移1位,除以2移N位,除以2n应用:(AL)10 SHL AL,1;2,2AL MOV BL,AL;BL=2AL MOV CL,2 SHL AL,CL;8AL ADD AL,BL;AL=10AL (3)算术右移:用于有符号数除法(2n)SAR OPRD,COUNT 应用:MOV AL,0CEH; (50)补0CE

32、H SAR AL,1;AL=0E7H,C=0 SAR AL,1;AL=0F3H,C=12、 循环移位:可实现多字节无符号数乘以2n和除以2n的运算 左向不带CROL OPRD,COUNT 右向不带CROR OPRD,COUNT 左向带C RCL OPRD,COUNT 右向带CRCR OPRD,COUNT 如:DX AX放有双字,为一个数,无符号数,实现4,4。、分析: 4: SHL AX,1 RCL DX,1 SHL AX,1 RCL DX,1 4: SHR DX,1 RCR AX,1 SHR DX,1 RCR AX,1 举例:BUF单元放有2位压缩BCD码,要求转为ACSII码并存于ASC开始两个单元。 即 BUF DB 28H ASC DB ? ;空一个字节,放高位数ASCII ASC+1 DB ? ;空一个字节,放低位数ASCII 分析:一个字节放2位BCD码,范围是:0099,即: 0000 0000H1001 1001H。压缩BCD码表示28:0010 1000B。 09和它们的ASCII码相差30H。 过程: :AND AL,OFH :ADD AL,30H 或者OR AL,30H

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号