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

上传人:豆**** 文档编号:17581840 上传时间:2022-05-25 格式:DOC 页数:15 大小:195KB
返回 下载 相关 举报
工业用微型计算机自考复习.doc_第1页
第1页 / 共15页
工业用微型计算机自考复习.doc_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《工业用微型计算机自考复习.doc》由会员分享,可在线阅读,更多相关《工业用微型计算机自考复习.doc(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流工业用微型计算机自考复习.精品文档.第一章知识点微处理器是微型机的核心芯片,通常简称为MP(Micro Processor),它是将计算机中的运算器和控制器集成在一个硅片上制作的集成电路。这样的芯片也被称为中央处理单元,一般简称为CPU(Central Processing Unit).第一代4位和低档8位微处理器(1971年1973年)第二代中高档8位微处理器(1974年1978年)第三代16位微处理器(1978年1981年)第四代32位高档微处理器(1985年1993年)第五代64位高档微处理器以后Intel又推出Pentium-II微处

2、理器。Advanced Micro Device公司(简称ADM)的K6是与Pentium-II性能相当的CPU。一、无符号数的表示和运算(一)进位计数制人们在日常生活中,采用多种进制的数字系统。最常用的是十进制。例如 199811039109108100后缀B表示二进制;后缀H表示十进制;后缀D表示十进制(也可不加后缀)例如:10011011B是二进制数;9BH是十六进制数;155D是十进制数;这些数都表示同一数值,即十进制的155,只是使用的进制不同而已。1二进制和十六进制间的相互转换(1)十六进制转换为二进制数,不论是十六进制的整数还是小数,只要把每一位十六进制的数用相应的二进制数来代替

3、,就可以转换为二进制。例如9BA61001 1011 1010 0110 即9BA6H100110111010011B(2)二进制转换为十六进制这种转换,可分两步进行:对整部分,从小数点向左数每4位二进制为一组,最后不足的前面补零。对小数部分,从小数点向右数,每4位一组,最后不足4位的后面补0,然后把每4位二进制数用相应的十六进制数代替,即可转换为十六进制数。例如1011011101010100 B 7 5 4 即10110111010101BB754H(2)二进制数转换为十进制数,对所给的二进制数,只要按前述的式(22)展开,即可得到对应的十进制数。例如 10111010B123121120

4、1201111625(3)十进制整数转换为二进制数,把十进制整数转换为二进制数,一般采用除2取余法。例如只要决定的值,就可写出二进制数,因为201,所以(21520)一定是2的整数倍,2152所得的余数即为X0。其转换过程为 2152107(商),余数1x0;107253(商),余数1x1;53226(商),余数1x2;26213(商),余数1x3;1326(商),余数1x4;623 (商),余数1x5;321 (商),余数1x6;120 (商),余数1,商为0,转换结束。故215D11010111B。(4)十进制整数转换为十六进制数,同转换为二进制数的道理一样,也可采用除16取余例如215D

5、转换为十六进制的过程为 2151613 (商),余数7x0; 1316=0 (商),余数13x1; 商为0,转换结束。故215DD7H;通常写成0D7H,D前面的0字说明D不是英文字符D而是数字13。又如何2345D的转换过程为1234516771(商),余数9x0;7711648 (商),余数3x1;48163 (商),余数0x2;3160 (商),余数3x3,商为0,结束。故12345D3039H,然后可化成二进制数0011000000111001B。(二)原码如上所示,正数的符号位用零表示,负数的符号位用1表示,符号位之后表示数值的大小这种表示方法称为原码。例如:x=+114,x原=01

6、110010B x=+114,x原=11110010B(三)反码正数的反码与原码相同。最高位一定为0,代表符号,其余位为数值位。负数的反码其符号位为1,与原码相同,数值位是将其负数的原码的数值位按位取反。例如: x=4,x反11111011B x=0,x反11111111B x=127,x反10000000B显然,反码的0也有2个,X0,x反0000000B(四)补码正数的补码表示与原码相同,即最高位为符号位,用“0”表示,其余位为数值位。而负数的补码为其反码加1即在反码的最低位加1形成补码。例如:x=4,x补x反111111011B111111100BFCH三、8位与16位二进制数的表示范围

7、(一)8位二进制的范围1)无符号数0255(或用0FFH表示)第三节 微型计算机系统的组成一、微型计算机系统的构成微型计算机系统是由硬件和软件两部分组成的,它的层次结构如图所示。 运算器 CPU 控制器 主机 存储器 寄存器 微型机硬件 输入输出接口 外围设备微型机系统 系统软件 微型机软件 应用软件图1 微型计算机系统的组成示意图(一)微型机硬件(1)微处理器,是微机系统的核心部件,简称为CPU,它包括运算器、控制器和寄存器几部分,运算器也叫算逻单元ALU(Arithmetic and Logic Unit)。(2)存储器(Memory)又叫主存或内存,是微机的存储和记忆部件,用以存放程序代

8、码和运算需要的数据。内存通常使用半导体存储器。1)内存容量,以80868088CPU为例,其地址总线为20根,寻址内存的范围为2201MB。这里B是字节(Byte),即每个内存单元内部存放的是一个字节(8位二进制)程序代码或数据,其形式均为二进制数(机器数)。因为8086的地址总线是20根,其寻址范围为1024KB,写成十六进制时就是5位,其地址范围为00000HFFFFFH。2)内存的操作 对内存的操作是读(取)和写(存储)。3)内存的分类 按存储器的工作性质可将内存分为只读存储器(ROM)和随机读写存储器(RAM)两大类。(3)输入输出接口(IO Interface)和外部设备CPU要与很

9、多外部设备进行数据传送,必须通过“IO接口”,所以输入输出接口是CPU与外设之间的桥梁。(4)总线 由上面叙述可以看到微型计算机主要是由微处理器、存储器、IO接口和IO设备所组成,这些部件是用系统总线连接起来的。(二)微型计算机软件微型机的软件是为运行、管理和测试维护而编制的各种程序的总和,没有软件的计算机只是裸机,计算机就无法工作。计算机软件分为系统软件和应用软件,系统软件包括操作系统(DOS及WINDOWS、UNIX、LINUX等)和系统应用程序。三、微型计算机的外围设备一般的计算机,配备有多种外围设备。其输入的外围设备有:键盘、鼠标、扫描仪、输出的外部设备有:显示器、打印机、绘图仪。而软

10、盘和硬盘驱动器既可作为输入又可作为输出设备,而大多数的光盘驱动器(CDROM)是作为输入设备使用的,它可以把CD或VCD光盘中的音乐送入声卡放大,也可以把VCD光盘的图像通过解压缩后的彩色图像在CRT是显示出来。目前,都采用全双工的声卡(AudioPCI混声器)完成声音的接收(有话简接口)、录音、声音合成和声音的播放(有一定功率的放大)。这样,配上较大功率的有源单箱,就可以放送出美丽动听的音乐和歌声。配置上网卡(一种是电话上网的调制解调器,例如56K的MODEM,一种是高速网卡),连接上INTERNET网络,就可以通过IDT NET2PHONE等软件打网络电话,发传真(FAX),收发ENALL

11、,通过WWW进行网上浏览。第四节 微处理器一、Intel 8086/8088微处理器(一)80868088的功能结构微处理器80868088微处理器结构类似,都由算术逻辑单元ALU、累加器、专用和通用寄存器、指令寄存器、指令译码器、定时器控制器等组成,后四部分相当于控制器。不过按功能可以分为两大部分总线接口单元BIU(Bus Interface Unit)和执行单元EU(Execution Unit)。(二)80868088的内部寄存器80868088内部有14个16位寄存器,编程时都要用到,所以必须识记。按其功能,可分为三大类:第一类是通过寄存器(8个),第二类是段寄存器(4个),第三类是控

12、制寄存器(2个)。通用寄存器包括数据寄存器、地址寄存器和变址寄存器。1数据寄存器AX、BX、CX、DX2地址指针寄存器SP、BP3变址寄存器SI、DI4段寄存器CS、SS、DS、ES5控制寄存器IP、FLAGSCF 进位标志位。当进行加法或减法运算时。若最高位发生进位或错位,则CF1,否则CF0;PF 奇偶标志位。当逻辑运算结果中“1”的个数为偶数时,PF1;为奇数时,PF0。AF 辅助进位位。在8(16)位加法操作中,低4(8)位有进位、借位发生时,AF1,否则AF0;ZF 零标志位。当运算结果为零时,ZF1。否则ZF0;SF 符号标志位。当运算结果的最高位为1(即为负数)时,SF1,否则S

13、F0;OF 溢出标志位。当算术运算的结果超出了带符号数的范围,即溢出时,OF1,否则OF0。8位带符号数范围是128127,16位带符号数的范围是3276832767。下面三个是控制标志位。控制标志位被设置后便对其后的操作产生控制作用。TF 跟踪标志位。TF1使CPU处于单步执行指令的工作方式。这种方式便于进行程序的调试。每执行一条指令后,便自动产生一次内部中断,从而使用户能逐条地检查程序。IF 中断允许标志位。IF1使CPU可以响应可屏蔽中断请求。IF0使CPU禁止响应可屏蔽中断请求。IF的状态对不可屏蔽中断及内部中断没有影响。DF 方向标志位。DF1使串操作按减地址方向进行,也就是说,从高

14、位地址开始,每操作一次地址减小一次。DF0使串操作按增地址方向进行。(四)80868088的工作方式80868088有两种工作方式:最小和最大模式,最小模式是单处理器模式,最大模式是多处理器模式,一般接入8087协调处理器。现在,用户使用的大部分都是486以上微处理器,均为最大模式。第二章知识点第一节指令系统计算机的指令系统。可以分为六大类:数据传送指令;算术传送指令;逻辑运算和移位指令;串操作指令;控制转移指令;处理器控制指令。一、指令格式指令是以二进制代码形式表示的操作命令,这种二进制代码称为机器码。寻址方式,通常是指CPU指令中规定的寻找操作数所在地址的方式,80868088CPU内部设

15、置了多个有关地址的寄存器,如各种地址指针寄存器以及变址寄存器等,因而使80868088的基本寻址方式有以下七种。二、立即寻址(Immediate Addrssing)例如:MOV CL,28HMOV AX,3189H三、寄存器寻址(Register Addrssing)指令中指定某些CPU寄存器存放操作数。上述寄存器可能是通用寄存器(8位或16位)、地址指针或变址寄存器,以及段寄存器。例如: MOV SS,AX四、直接寻址(Direct Addrssing)直接寻址指令在指令的操作码后面直接给出操作数的16位偏移地址。这个偏移地址也称为有效地址EA(Effective Address),它与指

16、令的操作码一起,存放在内存的代码段,也是低8位在前,高8位在后。但是,操作数本身一般存放在内存的数据段。例如: MOV AX,3100H五、寄存器间接寻址六、变址寻址(Indexed Addressing)变址寻址指令将规定的变址寄存器的内容加上指令中给出的位移量,得到操作数的有效地址。80868088CPU中变址寄存器有两个:源变址寄存器SI和目的变址寄存器DI。位移可以是8位或16位二进制数,一般情况下操作数在内存的数据段,但也允许段超越。下面是一条变址寻址指令的例子。 MOV BX,SI1003H七、基址寻址(Based Addrssing)基址与变址相类似,不同之处在于指令中使用基址寄

17、存器BX或基址指针寄存器BP,而不是变址寄存器SI和DI。需要指出一点,当使用BX寄存器实现基址时,一般情况下操作数是在数据段,即段地址在DS寄存器;而当使用BP时操作数通常在堆栈段,即段地址在SS寄存器中。但是,同样允许段超越。下面两条指令是基址寻址的例子。 MOV SI,DATABX MOV BLOCKBP,AX八基址变址寻址(Based Indexed Addre88ing)这种寻址方式是前面已经介绍的两种寻址方式的结合。指令中规定一个基址寄存器(BX和BP二者之一)和一个变址寄存器(SI和DI二者之一),同时还给出一个8位或16位的位移量,将三者的内容相加就得到操作的有效地址。至于段地

18、址,通常由所用的基址寄存器决定。当使用BX存放基址时,段地址一般在DS寄存器;当使用BP时,段地址一般在堆栈段SS中,但当指令中标明是段超越时例外。以下是一条基址加变址寻址指令的例子: MOV AX,COUNTBXSI第二节 80868088的指令系统一、数据传送指令(Data transfer)数据传送指令是程序中使用最多的指令,这是因为无论程序针对何种具体的实际问题,往往都需要将原始数据、中间结果、最终结果以及其他各种信息,在CPU的寄存器和存储器之间传送。数据传送指令按其功能的不同,可以分为以下四组:通用数据传送指令;输入输出指令;目标地址传送指令;标志传送指令。以下是MOV指令的几个例

19、子: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 DISPBX,CX;寄存器至存储器,基址寻址MOV AX,DISPSI;存储器至寄存器,变址寻址MOV DS,MEM;存储器至段寄存器,直接寻址MOV AX,DISPBXSI;存储器至寄存器,基址变址寻址PUSH(Push word onto sta

20、ck)推入操作 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位),如

21、果推入或弹出堆栈的寄存器操作数,则应是一个16位寄存器。如果是存储器操作数,是两个地址连续的存储单元。如:PUSH AX;通用寄存器椎入堆栈PUSH BP;基址指针寄存器推入堆栈PUSH DATASI;两个连续的存储单元推入堆栈POP DI;从堆栈弹出到变址寄存器POP ES;从堆栈弹出至段寄存器POP ALPHEBX;从堆栈弹出到两个连续的存储单元堆栈的用途很多,例如调用子程序(或过程),发生中断时都用推入堆栈的办法来保护断点的地址,而当子程序返回时再将断点地址从堆栈中弹出到IP,以便继续执行主程序。输入输出指令共两条。输入指令IN用于从外设端口接收数据,输出指令OUT向端口发送数据。指令格

22、式及操作:IN acc, port;(acc) (port)OUT port ,acc;(port) (acc)目标地址传送指令(Address object transfer)80868088CPU提供了三条把地址指针写入寄存器或寄存器对的指令,它们可以用来写入近地址指针和远地址指针。这三条指令是LDS、LES、LEA。LEA reg16 mem16LEA指令将一个近地址指针写入到指定的寄存器。指令中的目标寄存器必须是一个16位通用寄存器,源操作数必须是一个存储器,指令的执行结果是把源操作数的有效地址即16位偏移地址传送到目标寄存器。例如LEA BX,BUFFERLEA AX,BPDI二、算

23、术运算指令(Arithmetic)算术运算指令共有以下五组:加法运算指令减法运算指令乘法运算指令除法运算指令转换指令(一)加法指令(Addition)加法指令包括普通加法(ADD)指令、带进位加法(ADC)指令和加1(INC)指令,另外还有两条加法调整指令,即ASCII调整(AAA)和十进制调整(DAA)指令。1ADD(Addition)指令格式及操作: ADD dest ,src;(dest) (dest)+(src)ADD指令将目标操作数与源操作数相加,并将结果存回目标操作数。加法指令将影响大多数标志位。3INC(Increment by 1),加1指令指令格式及操作:INC dest(d

24、est) (dest)1INC指令将目标操作数加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、A

25、F、PF、CF和OF有影响操作数的类型与加法指令一样,即目标操作数可以是寄存器或存储器,源操作数可以是立即数、寄存器或存储器,但不允许两个存储器相减。既可以字节相减,也可以字相减。例如,SUB AL,98H;寄存器减立即数 SUB BX,CX;寄存器减寄存器 SUB DX,VAR1;寄存器减存储器DEC(Decrement by 1)减指令指令格式及操作:DEC dest;(dest) (dest)1DEC指令将目标操作数减1,指令对标志位SF、ZF、AF、PF和OF有影响,但不影响进位标志CF。操作数的类型与INC指令一样,可以是寄存器或存储器(段寄存器不可)。字节操作或字操作均可。例如,D

26、EC BL8位寄存器减:DEC CX;16位寄存器减1DEC BYTE PTR BX;存储器减1,字节操作DEC WORD PTR BPDI;存储器减1,字操作CMP(Compare)比较指令指令格式及操作:CMP dest,src;(dest)(src)不把差值回送给目的的操作数,影响标志,这条比较指令经常使用,并不把结果送给目的操作数,两个操作数不变,比较后影响标志,使程序根据比较后的标志转移。(三)乘法指令(Multiplication)80868088CPU可以通过执行一条指令完成乘法或除法运算。乘法指令共有三条:无符号数乘法指令(MUL)、带符号数乘法指令(IMUL)以及乘法的ASC

27、II调整指令(AAM)。1MUL(Multiplication unsigned)无符号数乘法指令格式:MUL src指令操作为,字节乘法(AX)(src)(AL) 字乘法(DX:AX)(src)(AX)MUL指令对标志位CF和OF有影响,但SF、ZF、AF和PF不确定。80868088CPU有三条除法指令,它们是无符号数除法指令(DIV)、带符号数除法指令(IDIV)以及除法的ASCII调整指令(AAD)。DIA(Division unsigned),无符号数除法指令指令格式: DIV srcDIA指令使大部分标志位如SF、ZF、AF、PF、CF和OF的值不确定。例比较两个字符串,找出其中第

28、一个不相等字符的地址。如果两字符串全部相同。则转到ALLMATCH进行处理。这两个字符串长度均为20,首地址分别为STRING1和STRING2。LEA SI,STRING1;(SI)字符串1首地址LEA DI,STRING2;(DI)字符串2首地址MOV CX,20;(CX)字符串长度CLD;清方向标志DFREPE CMPSB;如相等,重复进行比较JCXZ ALLMATCH;若(cx)=0,跳至ALLMATCHDEC SI;否则(SI)1DEC DI;(DI)1INT 3;返回DEBUGALLMATCH:MOV SI,0MOV DI,0INT 3;返回DEBUG控制转移指令(Control

29、transfer)8086/8088CPU提供了很多指令用于控制程序的转移。这类指令是以下四种:转移指令、循环控制指令、过程调用指令和中断指令,下面分别进行讨论。(一)转移指令转移是一种将程序从一处改换到另一处的最方便的方法。在CPU内部,转移是通过将目标地址传送给指令指针寄存器IP来实现的。转移指令包括无条件转移指令和条件转移指令。1、无条件转移指令JMP(JumP)JUMP指令的操作是无条件地将控制转移到指令中规定的目的地址。另外,目标地址可以用直接的方式给出,也可以用间接的方式给出,JMP指令对标志位没有影响。(1)段内直接转移 指令格式及操作:JMP near_label;转移到近标号

30、,(IP)(IP)disp(16位)例:在内存的数据段中存放了若干个8位带符号数,数据块的长度为COUNT(不超过255),首地址为TABLE,试统计其中正元素、负元素及零元素的个数,并分别将个数存入PLUS、MINUS和ZERO单元。为了统计正元素。负元素和零元素的个数,可先将PLUS、MINUS和ZERO三个单元清零,然后将数据表中带符号数逐个取入AL寄存器并使其影响标志位,再利用前面介绍的JS、JZ等条件转移指令测试该数是一个负数、零还是正数,然后分别在相应的单元中进行计数。程序如下:XOR AL,AL ;(AL)0MOV PLUS,AL ;清PLUS单元MOV MINUS,AL ;清M

31、INUS单元MOV ZERO,AL ;清ZERO单元LEA SI,TABLE ;(SI)数据表首址MOV CX,COUNT ;(CX)数据表长度CLD ;清标志位DFCHECK:LODSB ;取一个数据到AL中OR AL,AL;使数据影响标志位JS XI ;如为负,转X1JZ X2 ;如为零,转X2INC PLUS ;否则为正,PLUS单元加1JMP NEXTX1:INC MINUS ;MINUS单元加1JMP NEXTX2:INC ZERO ;ZERO单元加1NEXT:LOOP CHECK ;CX减1,不为零,转CHECKINT 3上面的程序中LOOP指令是一条循环控制指令,它的操作是先将1

32、(CX)1,然后判断是否CX的内容为0?如果不等于0,则转移到所指的标号CHECK,如果(CX)0,则执行下一条指令。DEBUG调试程序的简单应用DEBUG调试程序的功能DEBUGCOM或DEBUGEXE是随DOS操作系统提供的。键入该程序(DEBUG)后,出现提示符,它具有如下命令:A为汇编命令;U为反汇编命令;T为跟踪命令;D为显示内存命令;E为修改内存命令;F为填充命令;R为检查和修改寄存器命令;G为执行程序命令;L为装入内存命令;N为给程序命名的命令;I为输入,O为输出命令;M为传送内存命令;W为存盘命令,Q为结束DEBUG,回到DOS命令。第三章知识点第一节 程序设计语言概述目前,有

33、三种不同层次的计算机语言,这就是机器语言、汇编语言和高级语言。一、机器语言在机器语言(Machine Language)中,用二进制数表示指令和数据,它的缺点是不直观,很难理解和记忆。因此不用它编程。但是,机器语言程序是唯一能够被计算机直接理解和执行的程序,具有执行速度快,占用内存少等优点。二、汇编语言一般来说,有两种汇编程序,一种通常称为汇编(ASM),另一种称为宏汇编(MASM)。后者的功能更强。三高级语言高级语言(Highlevel Language)这针对某个具体的计算机,所以通用性强。第二节 汇编语言源程序的格式一、分段结构汇编语言源程序的结构是分段结构形式。一个汇编语言源程序由几个

34、段(Segment)组成,每个段都以SEGMENT语句开始,以ENDS结束,而整个源程序是以END语句结尾。汇编语言源程序中的语句主要有以下两种类型:指令性语句;指示性语句。指令性语句主要由CPU指令组成,编译时能够生成二进制机器代码;指示性语句又称伪操作语句,主要由伪操作组成,编译时并不生成二进制机器代码。那么,为什么还需要伪指令呢?这是因为伪操作语句是给汇编使用的。一般情况下,汇编语言的语句可以有14个组成部分,如下所示:名字操作码伪操作操作数;注释第三节 常用伪操作宏汇编程序MASM提供了大约几十种伪操作,根据伪操作的功能,大致可以分以下几类:处理器方式伪操作数据定义伪操作符号定义伪操作

35、段定义伪操作过程定义白伪操作模块定义白与连接伪操作宏处理伪操作条件伪操作列表伪操作其它伪操作一、段定义伪劣商品操作汇编语言程序的结构是分段的形式,一个汇编语言源程序若干个逻辑段组成,所有的指令、变量等都分别存放在各个逻辑段内。段定义伪操作的用途是在汇编语言源程序中定义逻辑段。常用的段定义伪操作有SEGMENT、ENDS和ASSUME等。(一个)SEGMENTENDS格式:段名 S EGMENT 定位类型 组合类型 类别段名 ENDS二、数据定义伪操作数据定义伪操作的用途是定义一个变量的庞大, 给存储器赋初值,或者仅仅给变量分别存储单元,而不赋予特定的值。下面介绍几种常用的、简单的数据定义伪操作

36、。常用的数据定义伪操作有下列5种。BD 定义字节DW 定义字(2个字节)DD 定义双字(4个字节)SQ 定义四字(8字节)DT 定义十字节(10个字节)上述5种数据定义伪操作的一般格式为变量名 伪操作 操作数 ,操作数三、符号定义伪操作符号定义伪操作的用途是给一个符号重新命名,或定义新的类型属性等。常用的符号伪操作有:EQU、(等号)和LABEL等。(一)EQU格式:名字 EQU 表达式四、过程定义伪操作PROCENDP 格式过程名 PROC NEARFAAARRET过程名 ENDP五、模块定义与连接伪操作在编写规模比较大的汇编语言程序时,可以将整个程序划分成为几个独立的源程序(或称为模块),

37、然后将各个模块分别汇编,生成各自的目标程序,最后再连接成一个完整的可执行程序各个模块之间可进行符号访问,也就是说,在一个模块中定义的符号可被另一个模块引用。这类符号称为外部符号,而将那些在一个模块中定义,且只在同一模块中引用的符号称为局部符号。为了进行连接以及这些将要连接在一起的模块之间实现相互的符号访问,以便进行变量传送,常使用以下伪操作:NAME、END、PUBLIC、EXTRN。(一)NAME伪操作该伪操作用于给源文件汇编以后得到的目标程序指定一个模块名,连接时要使用它。格式为NAME 模块名第四节 汇编语言程序设计程序设计步骤(一)程序设计的基本步骤对于给定的课题进行程序设计,一般应按

38、如下步骤进行:分析课题 分析课题就是对课题任务有明确认识,对复杂题目应进行抽象简化,建立数学模型。并弄清已知条件、原始数据和应得到的结果,以及课题任务对程序的功能、运算精度、执行速度等方面的要求。确定算法 确定算法就是选择解决问题的途径和方法,对于一个具体问题,算法可能有多种,应该选取简单、高效,能在计算机上易于实现的算法。画流程图 流程图是算法的一种图形描述,由逻辑框和流程线组成。关于流程图的画法已经在C语言部分讲述。对于复杂的问题可分解为若干个程序模块,然后确定各模块的算法,画出程序流程图。对于大的程序可分别画出分模块流程图和总的流程图,这时总流程图可设计得粗略一些,能反映出总体结构即可。

39、当然,对于简单的程序段,也可不画流程图,而直接按确定的算法编写程序。存储器资源分配 诸如各程序段的存放地址、数据区地址、工作单元分配等。编制程序、调试和修改DOS和BIOS 调用(2)用户如何使用一般说来,用户可通过四种方式控制PC机的硬件,表示如下:使用高级语言提供的功能进行控制,但提供的一些IO语句较少,执行速度慢。使用DOS提供的程序来控制硬件,其中DOS为用户提供的IO程序有近百种,而且都是在较高层次上提供的,不需要用户对硬件有太多的了解。使用DOS调用的可移植性好,输入输出功能多,编程简单,调试方便,但运行效率低些。使用BIOS提供的程序控制硬件,这是一种底层控制方法,要求用户对微机

40、的硬件有深入的了解,BIOS驻留在ROM中,不依赖于操作系统,这使得使用BIOS调用的汇编语言、C、PASCAL语言程序的可移植性差。因此,当BIOS和DOS提供的功能相同时,首先要先用DOS。但BIOS运行效率高,因此,在要求高速场合下,可选用BIOS调用。注意,BIOS的一部分功能,例如CRT显示功能,是DOS所不具备的。直接访问硬件,这就要求用户对计算机的外部设备很熟悉,通常用于获得高效率和DOS以及BIOS不支持的功能,但程序的可移植性更差。BIOS调用BIOS称为基本输入输出系统,是固化在ROM中的一组IO服务程序,除系统测试,初始化引导程序及部分中断向量装入程序外,还为用户提供了常

41、用的设备驱动程序,如键盘输入打印机及显示输出等。BIOS的调用方法同DOS系统功能调用类似,如下所示。置功能号n送AH 置入口参数 执行INTn 分析出口参数(!)键盘输入(2)打印机输出(3)时间中断(4)CRT显示 BIOS的INT 10H显示功能很强,主要包括设置显示方式,设置光标大小和位置,设置调色板号,显示字符和图形等。例 下面的程序可显示256个字符,但由于程序小,编写成COM文件的形式。求多个同学年龄之和,但年龄和不超过9999岁。源程序如下:DATA SEGMNT;规范化形式NLIN DB 23H,3H,38H;年龄原始数据,为BCD码NUMEQUNLIN;人数SUMDW?;年

42、龄和单元,定义为字,可能9876岁DATAENDS;规范化形式STACK;规范化形式START:MOV AX,DATA;规范化形式MOV DX,AXMOV CX,NUMXOR AX,AX;清AXMOV SI,OFFSET NLIN;原始数据首址(偏移地址)LP2:ADD AL,SI;(AL)(AL)SI,累加用ADDDAA;十进制调整ADCAH,0(AH)(AH)0CYXCHGAH,AL;AH,AL交换ADDAL,0;对原AH十进制调整DAA;DAA只能跟在加法后 XCHGAH,AL;调整后交换,也可设法用PUSH,POP指令INCSI;指令下一个年龄LOOPLP2;循环累加MOVSUM,AX;存放在内存DS:SUM单元,字操作MOVAH,4CH;规范化形式INT21HCODEENDSENDSTART;规范化形式第五节 汇编语言的上机过程一、工作环境目前,由于个人计算机的普及,在PC机上学习汇编语言是非常容易的了,应在磁盘上建立以下文件:MASMEXE;宏汇编程序,用50以上版本LINKEXE;为连接程序EXE2BINEXE;为转换成COM文件所需要的程序DEBUGCOM;调试程序NECOM、QEXE或EDITCOM等任何一种全屏幕编辑程序以上程序最好安装在硬盘。二、建立

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁