您好,欢迎访问三七文档
1第一章§1引言计算机系统硬件——主机+外设软件——系统软件+应用软件语言语言:机器语言——面向机器语言,由二进制数组成(0,1,0,1……)特点:计算机直接执行,速度快,人不易记忆汇编语言——采用助记符,如ADD表加法,SUB表减法特点:需编译,快,可记忆源程序编译软件可执行文件(二进制文件0,1,0,1……)高级语言——面向对象,与机器无关如:VC、VB、pascal……特点:编译方便记忆,编译速度慢,占内存大汇编语言应用在计算机控制中(硬件)高级语言应用在管理和科学计算中主要学习;Intel8086/8088CPU为蓝本的汇编语言§2数制一、常用#2,#8,#10,#16掌握这几种数制表示方法和相互转换10101100B——2#171Q——8#1234D(或不写)——10#1ACFH——16#对于16,如A1D6H→0A1D6HF112H→0F112H第一个以A~F开头前加0二、二一十进制(BCD)⒈作用表示方法:8421码BCD——用四位#2表示一位#1010#BCD15的BCD=00010101B0——0000123的BCD=000100100011B1——0001¦¦10000111B——879——1001①非压缩BCD码:用一个字节(8位#2)表示为BCD2如:800001000B700000111B高4位为0低4位为值如:87占用2个字节800001000B700000111B②压缩BCD码:用一个字节(8位2#)表示二位BCD8710000111B——一个字节三、字母与字符编码0~9a~zA~Z☆/……统一编码,用于输入/输出之用用7位2#来表示27=128字符编码方式——ASCII码编码表书P350——0110000B——30H1——0110001B——31H9——0111001B——39HA——1000001B——41HB——…………——42HF——…………——46Ha——1100001B——61Hb——…………——62Hf——…………——66H§3码制数在计算机中用2#表示,但负数怎样表示?三种方法:一、原码:用最高位表符号如:一个数用8位2#表示D7D6D5D4D3D2D1D0↑↑符号表数值如:一个数用16位2#表示D15D14…………D0↑↑符号表数值如:X=105[X]原=01101001B符号值差20H3如:X=-105[X]原=11101001B如:[0]原=00000000看8位2#(无符号)数00000000B~11111111B即0~255原码表示范围:11111111B~01111111B即–127~+127二、反码[X]反X当X0X当X0[0]原=[+0]原=[-0]原[+0]原=00000000[-0]原=11111111如:X=4=100B[X]反=00000100B[-X]反=11111011B表示范围:-127~+127三、补码X当X≧0[X]补=[X]反+1当X0指最低位D0[0]补=00000000X=4[X]补=00000100B[-X]补=11111011+00000001=11111100B补码:-128~+127[-128]补=10000000[+127]补=01111111补码定理:[X-Y]补=[X]补+[-Y]补优点:①表示负数②减法变成加法如:64-10=54[64-10]补=[64]补+[-10]补=01000000+11110110=100110110自然丢失结果其中[+10]补=00001010[-10]补=11110101+00000001=11110110即[64-10]补=00110110而0110110B=5464-10=+54通式:若[X-Y]补=[X]补+[-Y]补=Z+Z当Z最高位为0则X-Y=-[Z-1]反当Z最高位为1如5-10=-5[5-10]补=[5]补+[-10]补=00000101+11110110=11111011则5-10=-[11111011-00000001]反=-00000101B=-5写法:[X-Y]补=……X-Y=……4第二章8086/8088CPU结构§1组织结构五大组成:CPU(含运算器和控制器)存储器输入/输出设备总线(DB,AB,CB)关系:以CPU为核心,三总线结构1,CPU1片IC运算和控制协调全体工作2,存储器IC存放程序和数据和文件内存-RAM或ROM构成存储器外存-硬盘,光盘衡量存储器单位①容量:指有多个存储单元或字节存储器单位:一个单元(字节)1024字节=1K字节1024K字节=1M1024M=1G1024G=1T常用内存:512M=1024×1024×512(字节)外存:160G5②存储长度:每个单元能放几位2#数存储器一般为8位或16位一个字节二个或一个字节对8086/8088CPU存储器,长度为一个字节。③存储地址对每个单元进行编号,地址用16#表示有一个64K存储器,有64×1024=65536个单元0~65535=0~0FFFFH字母开头,加03/4、输入/输出5、总线⑴地址总线(AB)——寻址存储地址,对于8086/8088AB有20根线AB是单向(CPU→存储器)可接存储器:220=1048576地址为0~1048575即:0~0FFFFFH→1M⑵数据总线(DB)——传送数据和命令DB是双向的DB=81(根)6①CPUDB存储器(写操作)②CPUDB存储器(读操作)控制总线(CB)——送控制信号,接受状态信号出入§2CPU内部结构8086/8088CPUICAB为20位,DB为8位对808816位对8086一、内部结构P53运算器控制器↑ALU↑地址生成信号状态二、内部寄存器什么叫寄存器?①位置——在CPU内部②作用——放运算前数据或运算后结果1、通用寄存器16位数据寄存器:AX,BX,CX,DXAH——高8位16位同时:AXAL——低8位BHCHDH同样:BXCXDXBLCLDLAH=12H如:AX=1234H,等同于其中AX称为累加器AL=34H变址寄存器:SI,DI,16位,用于变址寻址堆栈寄存器:SP,BP,16位,用于堆栈操作2、指令指针寄存器:IP,16位放得执行指令所在地址,具有自动加工功能73、标志寄存器F(flag):反映ALU中运算结果状态16位:D15……D0书P57其中只有9位①CF:进位(借位标志)字节操作(8位)时,最高位为D7字节操作(16位)时,最高位为D15最高位有进位/借位时CF=1CF=最高位无进位/借位时CF=0②PF(奇偶性标志)11的个数为偶PF=00的个数为奇③ZF(零标志)1,结果为0ZF=0,结果不为0④SF(符号标志)SF与结果最高位相同(D7D15)0,结果为正SF=1,结果为负F中高位用于程序中分支中C,Z,P,S等9个4、段寄存器CS——代码寄存器~(程序)DS——数据寄存器均为16位SS——堆栈寄存器ES——附加寄存器注:不用于计算+,—,×,÷等,用于扩大寻址范围(访问存储器地址)8086/8088AB=20(根)220=1M(空间),而段寄存器为16位,216=64K(空间)①存储器分段和物理地址形成216=64K<1M扩大寻址范围8存储器分段方法:把1M分成16段,每段为64K采用动态访问法:把该段起始地址放入段寄存器中,而在段内用相对于段起始地址的唯一表示,该唯一称为偏移量。物理地址(有效地址)——EA=段地址×16+偏移量相当于左移4位(对2#)相当于左移1位(对16#)EA=10000H=100000+0000EA=1000H×16+0001=10001EA=1000H×16+0FFFF=10000H+0FFFF=1FFFFH转换:在CPU内用专有电路完成在编程中习惯用段地址、偏移量来表示存储单元地址如:存储器中某段段地址为2950H,某单元偏移量为0100H则EA=2950H×16+0100H=29600H即:②、四个段地址分工使用约定:程序段(代码):CS+IP9数据段(代码):DS+若干寄存器或存储器堆栈段(代码):SS+BP(或SP)附加段(代码):ES+若干寄存器或存储器放段地址放偏移量③、说明:在1M空间使用动态分配,可分成四个段,四个寄存器访问1M空间第三章指令系统§1、寻址方式寻址:寻找操作数所在地址的方式立即数操作数为在寄存器中在存储器中难点、重点:寻存储器的地址,方式寄存器,存储器区别:①位置:寄存器在CPU内部,存储器在CPU外部②地址:寄存器用代号,存储器用段地址,偏移量表示③长度:寄存器可当16位或8位用,存~每一个单元长度为8位1、立即数寻址:用于给存储器或寄存器赋初始值指令:MOVAX,1234H;AX←1234H执行后:AX=1234H即:AH=12H,AL=34H在存储器的存储方式:10指令:MOVAX,1181H执行后:AX=1181H指令:MOVBL,56H;BL←56H执行后:BL=56H2、直接寻址:指令中给出存储器的偏移量,隐含用DS作段地址指令:MOVAL,[22A0H]寄存器(8位)存储器(8位)执行过程:寄存器(8位)←存储器(8位)存储器段地址在DS中,偏移量为22A0HAL←[DS:22A0H]如果DS=3000H(322A0H)=12H则:EA=DS×16+22A0H=3000H×16+22A0H=322A0H即:执行后:AL=12H即:指令:MOV[22A0H],AL存储器(8位)←寄存器(8位)11指令:MOVAX,[22A0H]寄存器(16位)←存储器(16位)则:AL=(322A0H)=12HAH=(322A1H)=0ABH即:AX=0AB12H高8低8存储器低地址中内容作低8位AX存储器高地址中内容作高8位指令:MOV[22A0H],AX存储器(16位)←寄存器(16位)另:段超越MOVAX,ES:[22A0H]存储器ES:22A0H3、寄存器寻址:操作数在寄存器中指令:MOVAX,BX;AX←BXMOVDH,CL;DH←CLADDAX,BX;AX←AX+BX但:MOVAX,BLMOVAH,BX不平衡,指令有语法错误MOV16位,16位平衡原则MOV8位,8位4、寄存器间接寻址:操作数的偏移量在寄存器中SIEA=DS×16+DI中偏移量规定或BXEA=SS×16+BP中偏移量指令:MOVAH,[SI]寄存器(8位)←存储器(8位)若:(DS)=2000H,(SI)=1000H,(21000H)=12H则:EA=DS×16+(SI)=21000H12执行后:AH=12H指令:MOV[SI],AH指令:MOVAX,[SI]寄存器(16位)←存储器(16位)若:(DS)=2000H(21000H)=12H(低8位)(21001H)=34H(高8位)执行后:AX=3412H5、变址寻址下面三种格式等效:MOVAX,[BX]+nMOVAX,n[BX]MOVAX,[BX+n]存储器EA=DS×16+(BX)+n段地址偏移量指令:MOV[SI+10H],AX存储器(16位)←寄存器(16位)过程:若DS=3000H,SI=2000H,AX=4050H则:EA=DS×16+SI+10H=32010H执行后:(32010H)=50H(32011H)=40H指令:MOVCX,[BX+1050H]寄存器(16位)←存储器(16位)若:DS=3000H,BX=1000H则:EA=DS×16+BX+1050H=32050H6、基址加变址寻址:用BX,BP作基址,SI,DI作变址EA=(DS)×16+BX+SI(或DI)+n或EA=(SS)×16+BP+SI(或DI)+n13段地址偏移量指令:MOVAX,[BX+SI+10H]寄存器(16位)←存储器(16位)EA=DS×16+BX+SI+10H段地址偏移量EA+1指令:MOV[BP+DI+50H],BX存储器寄存器EA=SS×16+BP+DI+50H段地址偏移量EA+1若DS=1200H,BX=05A6H,SI=2000H,n=1618HSS=5000H,BP=40A0H,D
本文标题:微机原理上课笔记
链接地址:https://www.777doc.com/doc-4242516 .html