首页 工业用微型计算机_自考_复习

工业用微型计算机_自考_复习

举报
开通vip

工业用微型计算机_自考_复习第一章知识点 微处理器是微型机的核心芯片,通常简称为MP(Micro Processor),它是将计算机中的运算器和控制器集成在一个硅片上制作的集成电路。这样的芯片也被称为中央处理单元,一般简称为CPU(Central Processing Unit). 第一代4位和低档8位微处理器(1971年-1973年) 第二代中高档8位微处理器(1974年-1978年) 第三代16位微处理器(1978年-1981年) 第四代32位高档微处理器(1985年-1993年) 第五代64位高档微处理器 以后Intel又...

工业用微型计算机_自考_复习
第一章知识点 微处理器是微型机的核心芯片,通常简称为MP(Micro Processor),它是将计算机中的运算器和控制器集成在一个硅片上制作的集成电路。这样的芯片也被称为中央处理单元,一般简称为CPU(Central Processing Unit). 第一代4位和低档8位微处理器(1971年-1973年) 第二代中高档8位微处理器(1974年-1978年) 第三代16位微处理器(1978年-1981年) 第四代32位高档微处理器(1985年-1993年) 第五代64位高档微处理器 以后Intel又推出Pentium-II微处理器。Advanced Micro Device公司(简称ADM)的K6是与Pentium-II性能相当的CPU。 一、无符号数的表示和运算 (一)进位计数制 人们在日常生活中,采用多种进制的数字系统。最常用的是十进制。例如 1998=1×103+9×10+9×10+8×100 后缀B表示二进制;后缀H表示十进制;后缀D表示十进制(也可不加后缀) 例如:10011011B—是二进制数;9BH—是十六进制数;155D—是十进制数;这些数都表示同一数值,即十进制的155,只是使用的进制不同而已。 1.二进制和十六进制间的相互转换 (1)十六进制转换为二进制数,不论是十六进制的整数还是小数,只要把每一位十六进制的数用相应的二进制数来代替,就可以转换为二进制。例如 9 B A 6 1001 1011 1010 0110 即9B.A6H=10011011.1010011B (2)二进制转换为十六进制这种转换,可分两步进行:对整部分,从小数点向左数每4位二进制为一组,最后不足的前面补零。对小数部分,从小数点向右数,每4位一组,最后不足4位的后面补0,然后把每4位二进制数用相应的十六进制数代替,即可转换为十六进制数。例如 1011 0111.0101 0100 B 7 5 4 即10110111.010101B=B7.54H (2)二进制数转换为十进制数,对所给的二进制数,只要按前述的式(2-2)展开,即可得到对应的十进制数。例如 1011.1010B=1×23+1×21+1×20+1×20+1× +1× =11.625 (3)十进制整数转换为二进制数,把十进制整数转换为二进制数,一般采用除2取余法。例如 只要决定 的值,就可写出二进制数,因为20=1,所以(215-20)一定是2的整数倍,215÷2所得的余数即为X0。其转换过程为 215÷2=107 (商),余数=1=x0; 107÷2=53 (商),余数=1=x1; 53÷2=26 (商),余数=1=x2; 26÷2=13 (商),余数=1=x3; 13÷2=6 (商),余数=1=x4; 6÷2=3 (商),余数=1=x5; 3÷2=1 (商),余数=1=x6; 1÷2=0 (商),余数=1,商为0,转换结束。 故215D=11010111B。 (4)十进制整数转换为十六进制数,同转换为二进制数的道理一样,也可采用除16取余例如215D转换为十六进制的过程为 215÷16=13 (商),余数=7=x0; 13÷16=0 (商),余数=13=x1; 商为0,转换结束。 故215D=D7H;通常写成0D7H,D前面的0字说明D不是英文字符D而是数字13。又如何2345D的转换过程为 12345÷16=771 (商),余数=9=x0; 771÷16=48 (商),余数=3=x1; 48÷16=3 (商),余数=0=x2; 3÷16=0 (商),余数=3=x3,商为0,结束。 故12345D=3039H,然后可化成二进制数0011000000111001B。 (二)原码 如上所示,正数的符号位用零表示,负数的符号位用1表示,符号位之后表示数值的大小这种表示方法称为原码。例如: x=+114,〔x〕原=01110010B x=+114,〔x〕原=11110010B (三)反码 正数的反码与原码相同。最高位一定为0,代表符号,其余位为数值位。负数的反码其符号位为1,与原码相同,数值位是将其负数的原码的数值位按位取反。例如: x=-4,〔x〕反=11111011B x=-0,〔x〕反=11111111B x=-127,〔x〕反=10000000B 显然,反码的0也有2个,X=+0,〔x〕反=0000000B (四)补码 正数的补码表示与原码相同,即最高位为符号位,用“0”表示,其余位为数值位。而负数的补码为其反码加1即在反码的最低位加1形成补码。例如: x=-4,〔x〕补=〔x〕反+1=11111011B+1=11111100B=FCH 三、8位与16位二进制数的表示范围 (一)8位二进制的范围 1)无符号数0~255(或用0~FFH表示) 第三节 微型计算机系统的组成 一、微型计算机系统的构成 微型计算机系统是由硬件和软件两部分组成的,它的层次结构如图所示。 运算器 CPU 控制器 主机 存储器 寄存器 微型机硬件 输入/输出接口 外围设备 微型机系统 系统软件 微型机软件 应用软件 图1 微型计算机系统的组成示意图 (一)微型机硬件 (1)微处理器,是微机系统的核心部件,简称为CPU,它包括运算器、控制器和寄存器几部分,运算器也叫算逻单元ALU(Arithmetic and Logic Unit)。 (2)存储器(Memory)又叫主存或内存,是微机的存储和记忆部件,用以存放程序代码和运算需要的数据。内存通常使用半导体存储器。 1)内存容量,以8086/8088CPU为例,其地址总线为20根,寻址内存的范围为220=1MB。这里B是字节(Byte),即每个内存单元内部存放的是一个字节(8位二进制)程序代码或数据,其形式均为二进制数(机器数)。 因为8086的地址总线是20根,其寻址范围为1024KB,写成十六进制时就是5位,其地址范围为00000H~FFFFFH。 2)内存的操作 对内存的操作是读(取)和写(存储)。 3)内存的分类 按存储器的工作性质可将内存分为只读存储器(ROM)和随机读写存储器(RAM)两大类。 (3)输入输出接口(I/O Interface)和外部设备CPU要与很多外部设备进行数据传送,必须通过“I/O接口”,所以输入输出接口是CPU与外设之间的桥梁。 (4)总线 由上面叙述可以看到微型计算机主要是由微处理器、存储器、I/O接口和I/O设备所组成,这些部件是用系统总线连接起来的。 (二)微型计算机软件 微型机的软件是为运行、管理和测试维护而编制的各种程序的总和,没有软件的计算机只是裸机,计算机就无法工作。计算机软件分为系统软件和应用软件,系统软件包括操作系统(DOS及WINDOWS、UNIX、LINUX等)和系统应用程序。 三、微型计算机的外围设备 一般的计算机,配备有多种外围设备。其输入的外围设备有:键盘、鼠标、扫描仪、输出的外部设备有:显示器、打印机、绘图仪。而软盘和硬盘驱动器既可作为输入又可作为输出设备,而大多数的光盘驱动器(CD-ROM)是作为输入设备使用的,它可以把CD或VCD光盘中的音乐送入声卡放大,也可以把VCD光盘的图像通过解压缩后的彩色图像在CRT是显示出来。目前,都采用全双工的声卡(AudioPCI混声器)完成声音的接收(有话简接口)、录音、声音合成和声音的播放(有一定功率的放大)。这样,配上较大功率的有源单箱,就可以放送出美丽动听的音乐和歌声。配置上网卡(一种是电话上网的调制解调器,例如56K的MODEM,一种是高速网卡),连接上INTERNET网络,就可以通过IDT NET2PHONE等软件打网络电话,发传真(FAX),收发ENALL,通过WWW进行网上浏览。 第四节 微处理器 一、Intel 8086/8088微处理器 (一)8086/8088的功能结构 微处理器8086/8088微处理器结构类似,都由算术逻辑单元ALU、累加器、专用和通用寄存器、指令寄存器、指令译码器、定时器控制器等组成,后四部分相当于控制器。不过按功能可以分为两大部分—总线接口单元BIU(Bus Interface Unit)和执行单元EU(Execution Unit)。 (二)8086/8088的内部寄存器 8086/8088内部有14个16位寄存器,编程时都要用到,所以必须识记。按其功能,可分为三大类:第一类是通过寄存器(8个),第二类是段寄存器(4个),第三类是控制寄存器(2个)。 通用寄存器包括数据寄存器、地址寄存器和变址寄存器。 1.数据寄存器AX、BX、CX、DX 2.地址指针寄存器SP、BP 3.变址寄存器SI、DI 4.段寄存器CS、SS、DS、ES 5.控制寄存器IP、FLAGS CF 进位标志位。当进行加法或减法运算时。若最高位发生进位或错位,则CF=1,否则CF=0; PF 奇偶标志位。当逻辑运算结果中“1”的个数为偶数时,PF=1;为奇数时,PF=0。 AF 辅助进位位。在8(16)位加法操作中,低4(8)位有进位、借位发生时,AF=1,否则AF=0; ZF 零标志位。当运算结果为零时,ZF=1。否则ZF=0; SF 符号标志位。当运算结果的最高位为1(即为负数)时,SF=1,否则SF=0; OF 溢出标志位。当算术运算的结果超出了带符号数的范围,即溢出时,OF=1,否则OF=0。8位带符号数范围是-128~+127,16位带符号数的范围是-32768~+32767。 下面三个是控制标志位。控制标志位被设置后便对其后的操作产生控制作用。 TF 跟踪标志位。TF=1使CPU处于单步执行指令的工作方式。这种方式便于进行程序的调试。每执行一条指令后,便自动产生一次内部中断,从而使用户能逐条地检查程序。 IF 中断允许标志位。IF=1使CPU可以响应可屏蔽中断请求。IF=0使CPU禁止响应可屏蔽中断请求。IF的状态对不可屏蔽中断及内部中断没有影响。 DF 方向标志位。DF=1使串操作按减地址方向进行,也就是说,从高位地址开始,每操作一次地址减小一次。DF=0使串操作按增地址方向进行。 (四)8086/8088的工作方式 8086/8088有两种工作方式:最小和最大模式,最小模式是单处理器模式,最大模式是多处理器模式,一般接入8087协调处理器。现在,用户使用的大部分都是486以上微处理器,均为最大模式。 第二章知识点 第一节指令系统 计算机的指令系统。可以分为六大类:①数据传送指令;②算术传送指令;③逻辑运算和移位指令;④串操作指令;⑤控制转移指令;⑥处理器控制指令。 一、指令格式 指令是以二进制代码形式表示的操作命令,这种二进制代码称为机器码。 寻址方式,通常是指CPU指令中规定的寻找操作数所在地址的方式,8086/8088CPU内部设置了多个有关地址的寄存器,如各种地址指针寄存器以及变址寄存器等,因而使8086/8088的基本寻址方式有以下七种。 二、立即寻址(Immediate Addrssing) 例如: MOV CL,28H MOV AX,3189H 三、寄存器寻址(Register Addrssing) 指令中指定某些CPU寄存器存放操作数。上述寄存器可能是通用寄存器(8位或16位)、地址指针或变址寄存器,以及段寄存器。例如: MOV SS,AX 四、直接寻址(Direct Addrssing) 直接寻址指令在指令的操作码后面直接给出操作数的16位偏移地址。这个偏移地址也称为有效地址EA(Effective Address),它与指令的操作码一起,存放在内存的代码段,也是低8位在前,高8位在后。但是,操作数本身一般存放在内存的数据段。例如: MOV AX,〔3100H〕 五、寄存器间接寻址 六、变址寻址(Indexed Addressing) 变址寻址指令将规定的变址寄存器的内容加上指令中给出的位移量,得到操作数的有效地址。8086/8088CPU中变址寄存器有两个:源变址寄存器SI和目的变址寄存器DI。位移可以是8位或16位二进制数,一般情况下操作数在内存的数据段,但也允许段超越。 下面是一条变址寻址指令的例子。 MOV BX,〔SI+1003H〕 七、基址寻址(Based Addrssing) 基址与变址相类似,不同之处在于指令中使用基址寄存器BX或基址指针寄存器BP,而不是变址寄存器SI和DI。 需要指出一点,当使用BX寄存器实现基址时,一般情况下操作数是在数据段,即段地址在DS寄存器;而当使用BP时操作数通常在堆栈段,即段地址在SS寄存器中。但是,同样允许段超越。下面两条指令是基址寻址的例子。 MOV SI,DATA〔BX〕 MOV BLOCK〔BP〕,AX 八.基址-变址寻址(Based Indexed Addre88ing) 这种寻址方式是前面已经介绍的两种寻址方式的结合。指令中规定一个基址寄存器(BX和BP二者之一)和一个变址寄存器(SI和DI二者之一),同时还给出一个8位或16位的位移量,将三者的内容相加就得到操作的有效地址。至于段地址,通常由所用的基址寄存器决定。当使用BX存放基址时,段地址一般在DS寄存器;当使用BP时,段地址一般在堆栈段SS中,但当指令中标明是段超越时例外。以下是一条基址加变址寻址指令的例子: MOV AX,COUNT〔BX〕〔SI〕 第二节 8086/8088的指令系统 一、数据传送指令(Data transfer) 数据传送指令是程序中使用最多的指令,这是因为无论程序针对何种具体的实际问题,往往都需要将原始数据、中间结果、最终结果以及其他各种信息,在CPU的寄存器和存储器之间传送。数据传送指令按其功能的不同,可以分为以下四组: ①通用数据传送指令;②输入/输出指令;③目标地址传送指令;④标志传送指令。 以下是MOV指令的几个例子: MOV AX,CS ;段寄存器至通用寄存器 MOV AL,125 ;立即数至寄存器 MOV MEM,15 ;立即数至存储器,直接寻址 MOV SI,BX ;寄存器至寄存器 MOV DS,AX ;通用寄存器至段寄存器 MOV 〔BX〕,50H ;立即数至存储器,寄存器间址 MOV MEM,AX ;寄存器至存储器,直接寻址 MOV MEM,DS ;段寄存器至存储器,直接寻址 MOV DISP〔BX〕,CX ;寄存器至存储器,基址寻址 MOV AX,DISP〔SI〕 ;存储器至寄存器,变址寻址 MOV DS,MEM ;存储器至段寄存器,直接寻址 MOV AX,DISPBX〕〔SI ;存储器至寄存器,基址-变址寻址 PUSH(Push word onto stack)推入操作 POP(Pop word off stacks)弹出操作 指令格式及操作: PUSH src;(SP) ←(SP)-2,首先,堆栈指针-2送给堆栈指针 ((SP)+1:(SP))←(src),再把源操作数(字)推入堆栈中 POP dest;(dest) ←((SP)+1:(SP)),首先,堆栈的内容弹出到目的操作数 (SP) ←(SP)+2,再使堆栈指针加2 这是两条堆栈操作指令,PUSH指令将寄存器或存储器的内容推入堆栈;POP指令将堆栈中的内容弹出到寄存器或存储器,但都是字操作。 PUSH和POP指令的操作数可能有三种情况: 1)寄存器 2)段寄存器 3)存储器 无论那种操作数,其类型必须是字操作数(16位),如果推入或弹出堆栈的寄存器操作数,则应是一个16位寄存器。如果是存储器操作数,是两个地址连续的存储单元。如: PUSH AX ;通用寄存器椎入堆栈 PUSH BP ;基址指针寄存器推入堆栈 PUSH DATA〔SI〕 ;两个连续的存储单元推入堆栈 POP DI ;从堆栈弹出到变址寄存器 POP ES ;从堆栈弹出至段寄存器 POP ALPHE〔BX〕 ;从堆栈弹出到两个连续的存储单元 堆栈的用途很多,例如调用子程序(或过程),发生中断时都用推入堆栈的办法来保护断点的地址,而当子程序返回时再将断点地址从堆栈中弹出到IP,以便继续执行主程序。 输入输出指令共两条。输入指令IN用于从外设端口接收数据,输出指令OUT向端口发送数据。 指令格式及操作: IN acc, port ;(acc) ←(port) OUT port ,acc ;(port) ←(acc) 目标地址传送指令(Address— object transfer) 8086-8088CPU提供了三条把地址指针写入寄存器或寄存器对的指令,它们可以用来写入近地址指针和远地址指针。这三条指令是LDS、LES、LEA。 LEA reg16 mem16 LEA指令将一个近地址指针写入到指定的寄存器。指令中的目标寄存器必须是一个16位通用寄存器,源操作数必须是一个存储器,指令的执行结果是把源操作数的有效地址即16位偏移地址传送到目标寄存器。例如 LEA BX,BUFFER LEA AX,〔BP〕〔DI〕 二、算术运算指令(Arithmetic) 算术运算指令共有以下五组: 加法运算指令 减法运算指令 乘法运算指令 除法运算指令 转换指令 (一)加法指令(Addition) 加法指令包括普通加法(ADD)指令、带进位加法(ADC)指令和加1(INC)指令,另外还有两条加法调整指令,即ASCII调整(AAA)和十进制调整(DAA)指令。 1.ADD(Addition) 指令格式及操作: ADD dest ,src ;(dest) ←(dest)+(src) ADD指令将目标操作数与源操作数相加,并将结果存回目标操作数。加法指令将影响大多数标志位。 3.INC(Increment by 1),加1指令 指令格式及操作: INC dest (dest) ←(dest)+1 INC指令将目标操作数加1,指令将影响大多数标志位,如SF、ZF、AF、PF和OF但对进位标志CF没有影响。 (二)减法相令(Subtraction) 8086/8088CPU共有七条减法指令,它们是普通减法(SUB)、带借位减(SBB)、减1(DEC)、求补(NEG)、比较(CMP)指令,以及减法的ASCII调整(AAS)和十进制调整(DAS)指令,重点是SUB、DEC、CMP指令。 SUB(Subtraction) 指令格式及操作: SUB dest,src ;(desd) ←(desd) ←(src) SUB指令将目标操作数减源操作数,结果送回目标操作数。指令对标志位SF、ZF、AF、PF、CF和OF有影响 操作数的类型与加法指令一样,即目标操作数可以是寄存器或存储器,源操作数可以是立即数、寄存器或存储器,但不允许两个存储器相减。既可以字节相减,也可以字相减。 例如, SUB AL,98H ;寄存器减立即数 SUB BX,CX ;寄存器减寄存器 SUB DX,VAR1 ;寄存器减存储器 DEC(Decrement by 1)减指令 指令格式及操作:DEC dest ;(dest) ←(dest)-1 DEC指令将目标操作数减1,指令对标志位SF、ZF、AF、PF和OF有影响,但不影响进位标志CF。 操作数的类型与INC指令一样,可以是寄存器或存储器(段寄存器不可)。字节操作或字操作均可。例如, DEC BL 8位寄存器减: DEC CX ;16位寄存器减1 DEC BYTE PTR 〔BX〕 ;存储器减1,字节操作 DEC WORD PTR 〔BP〕〔DI〕 ;存储器减1,字操作 CMP(Compare)比较指令 指令格式及操作:CMP dest,src;(dest)-(src) 不把差值回送给目的的操作数,影响标志,这条比较指令经常使用,并不把结果送给目的操作数,两个操作数不变,比较后影响标志,使程序根据比较后的标志转移。 (三)乘法指令(Multiplication) 8086/8088CPU可以通过执行一条指令完成乘法或除法运算。乘法指令共有三条:无符号数乘法指令(MUL)、带符号数乘法指令(IMUL)以及乘法的ASCII调整指令(AAM)。 1.MUL(Multiplication unsigned)无符号数乘法 指令格式:MUL src 指令操作为,字节乘法(AX)←(src)×(AL) 字乘法(DX:AX)←(src)×(AX) MUL指令对标志位CF和OF有影响,但SF、ZF、AF和PF不确定。 8086/8088CPU有三条除法指令,它们是无符号数除法指令(DIV)、带符号数除法指令(IDIV)以及除法的ASCII调整指令(AAD)。 DIA(Division unsigned),无符号数除法指令 指令格式: DIV src DIA指令使大部分标志位如SF、ZF、AF、PF、CF和OF的值不确定。 例比较两个字符串,找出其中第一个不相等字符的地址。如果两字符串全部相同。则转到ALL_MATCH进行处理。这两个字符串长度均为20,首地址分别为STRING1和STRING2。 LEA SI,STRING1 ;(SI)←字符串1首地址 LEA DI,STRING2 ;(DI)←字符串2首地址 MOV CX,20 ;(CX)←字符串长度 CLD ;清方向标志DF REPE CMPSB ;如相等,重复进行比较 JCXZ ALL_MATCH ;若(cx)=0,跳至ALL_MATCH DEC SI ;否则(SI)-1 DEC DI ;(DI)-1 INT 3 ;返回DEBUG ALL_MATCH:MOV SI,0 MOV DI,0 INT 3 ;返回DEBUG 控制转移指令(Control transfer) 8086/8088CPU提供了很多指令用于控制程序的转移。这类指令是以下四种: 转移指令、循环控制指令、过程调用指令和中断指令,下面分别进行讨论。 (一)转移指令 转移是一种将程序从一处改换到另一处的最方便的方法。在CPU内部,转移是通过将目标地址传送给指令指针寄存器IP来实现的。转移指令包括无条件转移指令和条件转移指令。 1、无条件转移指令JMP(JumP) JUMP指令的操作是无条件地将控制转移到指令中规定的目的地址。另外,目标地址可以用直接的方式给出,也可以用间接的方式给出,JMP指令对标志位没有影响。 (1)段内直接转移 指令格式及操作: JMP near_label;转移到近标号,(IP)←(IP)+disp(16位) 例:在内存的数据段中存放了若干个8位带符号数,数据块的长度为COUNT(不超过255),首地址为TABLE,试统计其中正元素、负元素及零元素的个数,并分别将个数存入PLUS、MINUS和ZERO单元。 为了统计正元素。负元素和零元素的个数,可先将PLUS、MINUS和ZERO三个单元清零,然后将数据表中带符号数逐个取入AL寄存器并使其影响标志位,再利用前面介绍的JS、JZ等条件转移指令测试该数是一个负数、零还是正数,然后分别在相应的单元中进行计数。程序如下: XOR AL,AL ;(AL)←0 MOV PLUS,AL ;清PLUS单元 MOV MINUS,AL ;清MINUS单元 MOV ZERO,AL ;清ZERO单元 LEA SI,TABLE ;(SI)←数据表首址 MOV CX,COUNT ;(CX)←数据表长度 CLD ;清标志位DF CHECK:LODSB ;取一个数据到AL中 OR AL,AL ;使数据影响标志位 JS XI ;如为负,转X1 JZ X2 ;如为零,转X2 INC PLUS ;否则为正,PLUS单元加1 JMP NEXT X1:INC MINUS ;MINUS单元加1 JMP NEXT X2:INC ZERO ;ZERO单元加1 NEXT:LOOP CHECK ;CX减1,不为零,转CHECK INT 3 上面的程序中LOOP指令是一条循环控制指令,它的操作是先将1←(CX)-1,然后判断是否CX的内容为0?如果不等于0,则转移到所指的标号CHECK,如果(CX)=0,则执行下一条指令。 DEBUG调试程序的简单应用 DEBUG调试程序的功能 DEBUG.COM或DEBUG.EXE是随DOS操作系统提供的。键入该程序(DEBUG)后,出现提示符-,它具有如下命令:A为汇编命令;U为反汇编命令;T为跟踪命令;D为显示内存命令;E为修改内存命令;F为填充命令;R为检查和修改寄存器命令;G为执行程序命令;L为装入内存命令;N为给程序命名的命令;I为输入,O为输出命令;M为传送内存命令;W为存盘命令,Q为结束DEBUG,回到DOS命令。 第三章知识点 第一节 程序设计语言概述 目前,有三种不同层次的计算机语言,这就是机器语言、汇编语言和高级语言。 一、机器语言 在机器语言(Machine Language)中,用二进制数表示指令和数据,它的缺点是不直观,很难理解和记忆。因此不用它编程。但是,机器语言程序是唯一能够被计算机直接理解和执行的程序,具有执行速度快,占用内存少等优点。 二、汇编语言 一般来说,有两种汇编程序,一种通常称为汇编(ASM),另一种称为宏汇编(MASM)。后者的功能更强。 三高级语言 高级语言(Highlevel Language)这针对某个具体的计算机,所以通用性强。 第二节 汇编语言源程序的格式 一、分段结构 汇编语言源程序的结构是分段结构形式。一个汇编语言源程序由几个段(Segment)组成,每个段都以SEGMENT语句开始,以ENDS结束,而整个源程序是以END语句结尾。 汇编语言源程序中的语句主要有以下两种类型: ①指令性语句; ②指示性语句。 指令性语句主要由CPU指令组成,编译时能够生成二进制机器代码;指示性语句又称伪操作语句,主要由伪操作组成,编译时并不生成二进制机器代码。那么,为什么还需要伪指令呢?这是因为伪操作语句是给汇编使用的。一般情况下,汇编语言的语句可以有1~4个组成部分,如下所示: [名字]操作码/伪操作[操作数][;注释] 第三节 常用伪操作 宏汇编程序MASM提供了大约几十种伪操作,根据伪操作的功能,大致可以分以下几类: ①处理器方式伪操作 ②数据定义伪操作 ③符号定义伪操作 ④段定义伪操作 ⑤过程定义白伪操作 ⑥模块定义白与连接伪操作 ⑦宏处理伪操作 ⑧条件伪操作 ⑨列表伪操作 ⑩其它伪操作 一、段定义伪劣商品操作 汇编语言程序的结构是分段的形式,一个汇编语言源程序若干个逻辑段组成,所有的指令、变量等都分别存放在各个逻辑段内。 段定义伪操作的用途是在汇编语言源程序中定义逻辑段。常用的段定义伪操作有SEG-MENT、ENDS和ASSUME等。 (一个)SEGMENT/ENDS 格式: 段名 S EGMENT [定位类型] [组合类型] [‘类别’] 段名 ENDS 二、数据定义伪操作 数据定义伪操作的用途是定义一个变量的庞大, 给存储器赋初值,或者仅仅给变量分别存储单元,而不赋予特定的值。 下面介绍几种常用的、简单的数据定义伪操作。常用的数据定义伪操作有下列5种。 BD 定义字节 DW 定义字(2个字节) DD 定义双字(4个字节) SQ 定义四字(8字节) DT 定义十字节(10个字节) 上述5种数据定义伪操作的一般格式为 [变量名] 伪操作 操作数 [,操作数…] 三、符号定义伪操作 符号定义伪操作的用途是给一个符号重新命名,或定义新的类型属性等。常用的符号伪操作有:EQU、=(等号)和LABEL等。 (一)EQU 格式:名字 EQU 表达式 四、过程定义伪操作 PROC/ENDP 格式 过程名 PROC [NEAR/FAAAR] RET 过程名 ENDP 五、模块定义与连接伪操作 在编写规模比较大的汇编语言程序时,可以将整个程序划分成为几个独立的源程序(或称为模块),然后将各个模块分别汇编,生成各自的目标程序,最后再连接成一个完整的可执行程序各个模块之间可进行符号访问,也就是说,在一个模块中定义的符号可被另一个模块引用。这类符号称为外部符号,而将那些在一个模块中定义,且只在同一模块中引用的符号称为局部符号。 为了进行连接以及这些将要连接在一起的模块之间实现相互的符号访问,以便进行变量传送,常使用以下伪操作:NAME、END、PUBLIC、EXTRN。 (一)NAME伪操作 该伪操作用于给源文件汇编以后得到的目标程序指定一个模块名,连接时要使用它。格式为 NAME 模块名 第四节 汇编语言程序设计 程序设计步骤 (一)程序设计的基本步骤 对于给定的课题进行程序设计,一般应按如下步骤进行: ⑴分析课题 分析课题就是对课题任务有明确认识,对复杂题目应进行抽象简化,建立数学模型。并弄清已知条件、原始数据和应得到的结果,以及课题任务对程序的功能、运算精度、执行速度等方面的要求。 ⑵确定算法 确定算法就是选择解决问题的途径和方法,对于一个具体问题,算法可能有多种,应该选取简单、高效,能在计算机上易于实现的算法。 ⑶画 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 图 流程图是算法的一种图形描述,由逻辑框和流程线组成。关于流程图的画法已经在C语言部分讲述。对于复杂的问题可分解为若干个程序模块,然后确定各模块的算法,画出程序流程图。对于大的程序可分别画出分模块流程图和总的流程图,这时总流程图可设计得粗略一些,能反映出总体结构即可。当然,对于简单的程序段,也可不画流程图,而直接按确定的算法编写程序。 ⑷存储器资源分配 诸如各程序段的存放地址、数据区地址、工作单元分配等。 ⑸编制程序、调试和修改 DOS和BIOS 调用 (2)用户如何使用 一般说来,用户可通过四种方式控制PC机的硬件,表示如下: ①使用高级语言提供的功能进行控制,但提供的一些I/O语句较少,执行速度慢。 ②使用DOS提供的程序来控制硬件,其中DOS为用户提供的I/O程序有近百种,而且都是在较高层次上提供的,不需要用户对硬件有太多的了解。使用DOS调用的可移植性好,输入输出功能多,编程简单,调试方便,但运行效率低些。 ③使用BIOS提供的程序控制硬件,这是一种底层控制方法,要求用户对微机的硬件有深入的了解,BIOS驻留在ROM中,不依赖于操作系统,这使得使用BIOS调用的汇编语言、C、PASCAL语言程序的可移植性差。因此,当BIOS和DOS提供的功能相同时,首先要先用DOS。但BIOS运行效率高,因此,在要求高速场合下,可选用BIOS调用。注意,BIOS的一部分功能,例如CRT显示功能,是DOS所不具备的。 ④直接访问硬件,这就要求用户对计算机的外部设备很熟悉,通常用于获得高效率和DOS以及BIOS不支持的功能,但程序的可移植性更差。 BIOS调用 BIOS称为基本输入输出系统,是固化在ROM中的一组I/O服务程序,除系统测试,初始化引导程序及部分中断向量装入程序外,还为用户提供了常用的设备驱动程序,如键盘输入/打印机及显示输出等。BIOS的调用方法同DOS系统功能调用类似,如下所示。 置功能号n送AH →置入口参数 →执行INTn→ 分析出口参数 (!)键盘输入 (2)打印机输出 (3)时间中断 (4)CRT显示 BIOS的INT 10H显示功能很强,主要包括设置显示方式,设置光标大小和位置,设置调色板号,显示字符和图形等。 例 下面的程序可显示256个字符,但由于程序小,编写成COM文件的形式。 求多个同学年龄之和,但年龄和不超过9999岁。源程序如下: DATA SEGMNT ; 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 化形式 NLIN DB 23H,3H,…,38H;;年龄原始数据,为BCD码 NUM EQU $-NLIN ;人数 SUM DW? ;年龄和单元,定义为字,可能9876岁 DATA ENDS ;规范化形式 STACK… ;规范化形式 … START:MOV AX,DATA ;规范化形式 MOV DX,AX MOV CX,NUM XOR AX,AX ;清AX MOV SI,OFFSET NLIN;原始数据首址(偏移地址) LP2:ADD AL,〔SI〕 ;(AL)←(AL)+〔SI〕,累加用ADD DAA ;十进制调整 ADC AH,0 (AH)←(AH)+0+CY XCHG AH,AL ;AH,AL交换 ADD AL,0 ;对原AH十进制调整 DAA ;DAA只能跟在加法后 XCHG AH,AL ;调整后交换,也可设法用PUSH,POP指令 INC SI ;指令下一个年龄 LOOP LP2 ;循环累加 MOV SUM,AX ;存放在内存DS:SUM单元,字操作 MOV AH,4CH ;规范化形式 INT 21H CODE ENDS END START ;规范化形式 第五节 汇编语言的上机过程 一、工作环境 目前,由于个人计算机的普及,在PC机上学习汇编语言是非常容易的了,应在磁盘上建立以下文件: MASM.EXE ;宏汇编程序,用5.0以上版本 LINK.EXE ;为连接程序 EXE2BIN.EXE ;为转换成COM文件所需要的程序 DEBUG.COM ;调试程序 NE.COM、Q.EXE或EDIT.COM等任何一种全屏幕编辑程序 以上程序最好安装在硬盘。 二、建立汇编语言源文件 三、MASM和LINK程序的应用 (一)用MASM程序产生OBJ文件 (二)用LINK程序进行链接 (三)用DEBUC调试程序进行调试 (四)COM文件的生成 按照COM文件编写的源程序 (五)批处理文件的应用 为加快源程序的编辑、编译、链接和转换的速度,用户可设计一个批处理文件,将实现以上命令的组织在批目理文件中。 第四章知识点 一、存储的分类 按存取速度和用途可把存储器分为两大类:把具有一定容量、存取速度快的存储器称为内部存储器,简称内存。把存储容量大而速度较慢的存储器称为外部存储器,简称外存。在微型计算机中常见的外存有软磁盘、硬磁盘、盒式磁盘等。 二、半导体存储器的分类 从制造工艺的角度可把半导体存储器分为双极型、CMOS型、HMOS型等;从应用角度看将其分为两大类:随机读写存储器(Random Access memory),又称随机存取存储器,简称RAM;只读存储器(Read Only Memory)。 两种存储器的特点 (一)只读存储器(ROM) (二)随机读写存储器(RAM) 三、半导体存储器的指标 衡量半导体存储器的指标很多,诸如可靠性、功耗、价格、电源种类等,但从接口电路来看,最重要的指标是存储器芯片的容量和存取速度。 第二节 随机读写存储(RAM) 一、静态RAM (一)静态RAM的结构 静态RAM内部是由很多基本存储电路组成的。该电路是1位存储电路,由4个MOS管组成的双稳态触发器,加上读出写入的电路组成。RAM容量为单元数与数据线位数之乘积,为了选中某一个单元,往往利用矩阵式排列的地址译码电路。例如1K(1024)单元的内存,需10根地址线,其中5根用于行码,5根用于译码,译码后在芯片内部排列成32条行选择线和32条列选择线,这样可选中1024个单元中任何一个。而每一个单元的基本存储电路个数与数据线位数相同。 常用的典型SRAM芯片有6116、6264、62256、628128等。 第四节 CPU与存储器的连接 一、连接时应注意的问题 在微型计算机中,CPU对存储器进行读写操作,首先要由地址总线给出地址信号,然后发出读写控制信号,最后才能在数据总线上进行数据的读写。所以,CPU与存储器连接时,地址总线、数据总线和控制总线都要连接。在连接时应注意以下问题。 (一)CPU总线的带负载能力 (二)CPU时序与存储器存取速度之间的配合 CPU的取指周期和对存储器读写都有固定的时序,由此决定了对存储器存取速度的要求。具体地说,CPU对存储器进行读操作时,CPU发出地址和读写命令后,存储器必须在限定时间内给出有效数据。而当CPU对存储器进行写操作时,存储器必须在写脉冲规定的时间内将数据写入指定存储单元,否则就无法保证迅速准确地传送数据,一般选快速的存储器。 (三)存储器组织、地址分配 第六节 扩展存储器及其管理 一、寻址范围 各档PC机因地址线数目的不同,其寻址能力也不同,如下表所示。 不同CPU的寻址范围 CPU CPU 数据总线 地址总线 寻址范围 支持操作系统 8088 8位 20位 1MB 实方式 8086 8位 20位 1MB 实方式 80286 16位 24位 16MB 实、保护方式 80386 32位 32位 4096MB 实、保护、V86方式 80486 32位 32位 4096MB 实、保护、V86方式 二、存储器管理 80386、80486微处理器支持三种工作方式,即实地址方式、虚地址保护方式,V86方式,80286只有两种方式,8088/8086只工作在实地址方式。 (一)实地址方式 (二)虚地址保护方式 三、高速缓存器 80386/80486CPU可以有很高的工作频率,如果访问存储器插入等待周期,这实际上降低了CPU的工作速度。系统设计者追求的是在不插入等待周期(零等待)的条件下工作。在保证系统性能价格比的前提下,较好的办法是使用高性能的SRAM芯片组成高速小容量的缓存器,使用最低价格最小体积能提供更大的存储空间的DRAM芯片(或内存条)组成主存储器。由此看来,使用高速缓存器系统,使存储器系统的价格下降,又使总线访问接近零等待的性能。 _1192080545.unknown _1192080920.unknown _1192264358.unknown _1192264379.unknown _1192263271.unknown _1192080738.unknown _1192080444.unknown
本文档为【工业用微型计算机_自考_复习】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_324430
暂无简介~
格式:doc
大小:132KB
软件:Word
页数:15
分类:
上传时间:2013-03-06
浏览量:43