汇编语言复习题.ppt
《汇编语言复习题.ppt》由会员分享,可在线阅读,更多相关《汇编语言复习题.ppt(81页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、带符号数的编码带符号数的编码表1-4三种不同码制的十进制真值 返回目录二进制数原码反码补码二进制数原码反码补码00000001000078000111110011670010222101025600113331011345010044411004340101555110152301106661110612011177711117011.3.3 高级语言高级语言 高级语言主要是相对于汇编语言而言,它是较接近自然语言和数学公式的形式编程,基本脱离了机器的硬件系统,用人们更易于理解的方式编写程序。高级语言并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的VB、VC、FoxPro、Del
2、phi等,这些语言的语法、命令格式都各不相同。高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类:返回目录1.3.1 机器语言机器语言 3伪指令伪指令伪指令就是向汇编程序提供如何进行汇编工作的命令,也叫汇编控制命令。伪指令没有对应的机器指令,汇编时不产生机器码。4汇编语言汇编语言汇编指令、伪指令、宏指令和汇编程序一起组成了汇编语言。汇编语言直接面向机器,用汇编语言编制的程序简洁、快速,常用于对运行速度要求较高的实时控制等场合。用汇编语言编制的用户程序称为汇编语言源程序。汇编语言的实质和机器语言是相同的,都是直接对硬件操作,但指令采用了英文缩写的标识符,
3、更容易识别和记忆。而其所占用的存储空间和执行速度与机器语言相仿。返回目录1.3.2 汇编语言汇编语言 1汇编指令汇编指令汇编指令是用助记符号表示的机器指令,它与机器指令一一对应。2汇编程序汇编程序计算机不能直接识别汇编指令,要让机器接受汇编指令还需要有一个将汇编指令翻译为机器指令的过程,这个过程称为汇编。汇编程序就是把汇编语言源程序翻译成机器语言程序的一种系统软件。IBM PC机中的汇编程序有ASM和MASM两种,ASM称为小汇编程序,它只需较小的存储区。MASM称为宏汇编程序,它需要的存储区较大,但功能较强,且具有宏汇编能力,ASM则不具备这种能力。返回目录1.3.1 机器语言机器语言 1机
4、器指令机器指令机器指令是指挥计算机完成某一基本操作的命令,由硬件电路设计决定的,因而也叫做硬指令。机器指令是由一组能为计算机所接受的0和1组成的二进制代码。机器指令由操作码和地址码组成,规定了要求计算机完成的操作及其操作的对象(数据或存储单元地址);2指令系统指令系统每台计算机所具有的特有的、全部指令的集合构成该CPU的指令系统。不同的CPU具有不同的指令系统。3机器语言程序机器语言程序机器指令的集合构成了机器语言,用机器语言编写的程序就是机器语言程序。计算机所能识别的语言只有机器语言,但机器语言非常难于记忆和识别通常人们编程时,不采用机器语言,而采用汇编语言和高级语言。返回目录1.3 计算机
5、语言计算机语言 1.3.1 机器语言 1.3.2 汇编语言 1.3.3 高级语言 返回目录系统总线系统总线总线是指传递信息的一组公用导线总线是指传递信息的一组公用导线总线是传送信息的公共通道总线是传送信息的公共通道微机系统采用总线结构连接系统功能部件微机系统采用总线结构连接系统功能部件总线信号可分成三组总线信号可分成三组地址总线地址总线ABAB:传送地址信息传送地址信息数据总线数据总线DBDB:传送数据信息传送数据信息控制总线控制总线CBCB:传送控制信息传送控制信息Intel 80 x86CPU的地址线条数的地址线条数Intel80 x86地址条数地址条数存储容量存储容量8086 20 1M
6、B8088 20 1MB80286 24 16MB80386 Pentium4 32 4GB返回返回Intel 80 x86CPU的数据线条数的数据线条数Intel 80 x86 数据位数数据位数80861680888802861680386Pentium 432返回返回程序预先存放在计算机的存储器中,计算机按程序预先存放在计算机的存储器中,计算机按程序的流程自动地连续取出指令并执行之。程序的流程自动地连续取出指令并执行之。为实现自动连续地执行程序,控制器设置一程为实现自动连续地执行程序,控制器设置一程序计数器序计数器PC,它可根据指令的长度自动增量,它可根据指令的长度自动增量(总是指向下一条
7、指令)。只要给出程序中第(总是指向下一条指令)。只要给出程序中第一条指令的地址,控制器就可依据存储程序中一条指令的地址,控制器就可依据存储程序中的指令顺序周而复始地取指令、译码、执行,的指令顺序周而复始地取指令、译码、执行,直到完成全部指令操作为止,即控制器通过指直到完成全部指令操作为止,即控制器通过指令流的串行驱动实现程序控制。令流的串行驱动实现程序控制。冯冯 诺依曼存储程序工作原理诺依曼存储程序工作原理程序程序指令指令1指令指令2指令指令3指令指令4指令指令n取指令取指令指令译码指令译码取操作数取操作数执行指令执行指令存结果存结果指令周期指令周期操作码 操作数执行执行2.4.2 微型计算机
8、的工作过程微型计算机的工作过程指令执行过程指令执行过程取指令取指令指令指令译码译码取操取操作数作数执行执行指令指令存结果存结果问题:问题:1.CPU如何知道从哪里取出程序的第一条指令?如何知道从哪里取出程序的第一条指令?操作系统操作系统2.CPU如何按程序控制流执行指令?如何按程序控制流执行指令?程序计数器程序计数器3.CPU如何知道从哪里取操作数?如何知道从哪里取操作数?地址、寻址方式地址、寻址方式汇编语言与机器语言的关系汇编源程序汇编源程序执行程序执行程序目标程序目标程序汇汇编编连连接接连接程序连接程序汇编程序汇编程序1.2 8086微处理器内部结构组成微处理器内部结构组成图3-1 808
9、6CPU内部结构框图 1.3 8086CPU的寄存器结构的寄存器结构8086CPU中可供编程使用的有14个16位寄存器,按其用途可分为3类:通用寄存器、段寄存器、指针和标志寄存器,如所示。累加器AHALBHBLCLDHDLCHSPSIDIIPFLAGSCSDSSSESBP基址寄存器计数寄存器数据寄存器堆栈指针寄存器基址指针寄存器源变址寄存器目的变址寄存器指令指针寄存器标志寄存器代码段寄存器段寄存器附加段寄存器堆栈段寄存器数据寄存器地址指针和变址寄存器控制寄存器通用寄存器数据段寄存器8086CPU内部寄存器结构 AXBXCXDX(2)控制标志:控制标志是用来控制CPU的工作方式或工作状态。TF:
10、陷阱标志或单步操作标志:IF:中断允许标志DF:方向标志3段寄存器段寄存器8086CPU共有4个16位的段寄存器,用来存放每一个逻辑段的段起始地址。(1)代码段寄存器CS(2)数据段寄存器DS(3)堆栈段寄存器SS(4)附加段寄存器ES标志寄存器标志寄存器(FLAGS/PSW)15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 条件码标志:控制标志:OF 溢出标志 DF 方向标志 SF 符号标志 IF 中断标志ZF 零标志 TF 陷阱标志CF 进位标志AF 辅助进位标志PF 奇偶标志OF DF IF TF SF ZF AF PF CF例:ADD AX,BX JO/JC
11、ERROR?表1通用寄存器的特定用法寄存器操作寄存器操作AX字乘,字除,字I/OCL变量移位,循环移位AL字节乘,字节除,字节I/O,查表转换,十进制运算DX字乘,字除,间接I/OAH字节乘,字节除SP堆栈操作BX查表转换SI数据串操作指令CX数据串操作指令,循环指令DI数据串操作指令1通用寄存器 通用寄存器分为数据寄存器与指针和变址寄存器两组。数据寄存器包括4个16位的寄存器AX、BX、CX和DX,一般用来存放16位数据,故称为数据寄存器。其中的每一个又可根据需要将高8位和低8位分成独立的两个8位寄存器来使用,即AH、BH、CH、DH和AL、BL、CL、DL两组,用于存放8位数据,它们均可独
12、立寻址、独立使用。指针和变址寄存器包括指针寄存器SP、BP和变址寄存器SI、DI,都是16位寄存器,,一般用来存放地址的偏移量。这8个16位通用寄存器都具有通用性,从而提高了指令系统的灵活性。但在有些指令中,这些通用寄存器还各自有特定的用法,见下表。n物理地址8088:20根地址线,可寻址220(1MB)个存储单元CPU送到AB上的20位的地址称为物理地址物理地址1.48086CPU的存储器组织一、存储器寻址3逻辑地址(LA)和物理地址(PA)物理地址:就是存储器的实际地址,它是指CPU和存储器进行数据交换时所使用的地址(20位)。逻辑地址:是在程序中使用的地址,它由段地址和偏移地址两部分组成
13、(16位)。逻辑地址的表示形式为“段地址偏移地址”。物理地址物理地址=段地址段地址10H偏移地址偏移地址4专用和保留的存储器单元指令的组成:指令的组成:指令由指令由操作码操作码和和操作数操作数两部分组成两部分组成操作码说明计算机要执行的操作,不可缺少操作码说明计算机要执行的操作,不可缺少操作数是指令中的操作对象操作数是指令中的操作对象操作码操作码操作数1操作数2指令中的操作数的来源:要么是某个具体数值要么是某个寄存器要么是内存中某个存储单元22/38指令系统指令系统(重点重点重点重点)一组指令的集合一组指令的集合第第3章章微机指令系统微机指令系统 操作码操作码 操作数操作数 .操作操作数数指令
14、指令 寻址方式寻址方式(重点重点重点重点)与数据有关的寻址方式与数据有关的寻址方式 与转移地址有关的寻址方式与转移地址有关的寻址方式传送指令:传送指令:MOV DST,SRC执行操作:执行操作:(DST)(SRC)注意注意:*DST、SRC 不能同时为段寄存器不能同时为段寄存器 MOV DS,ES *立即数不能直接送段寄存器立即数不能直接送段寄存器 MOV DS,2000H *DST 不能是立即数和不能是立即数和CS*DST、SRC 不能同时为存储器寻址不能同时为存储器寻址*不影响标志位不影响标志位 通用数据传送指令通用数据传送指令MOV AX,DSEGMOV DS,AX指令指令()()+左移
15、左移4位位完成上图的填空:其中,完成上图的填空:其中,BP=105H,DS=1000H,SS=2000H,(20105H)=3355H,(10105H)=1A34H.执行指令后,执行指令后,AX的值为多少?的值为多少?例2.MOV AX,BP25/38uu 寻址方式小结寻址方式小结MOV AX,0020HMOV AX,BXMOV AX,0020H 或 MOV AX,BUFMOV AX,BXMOV AX,BX0030HMOV AX,BXDIMOV AX,BXDI0030H26/38立即寻址寄存器寻址直接寻址寄存器间接寻址寄存器相对寻址基址变址寻址相对基址加变址寻址注意注意:*不影响标志位不影响标
16、志位*前前256个端口号个端口号00HFFH可直接在指令中指定(长格式)可直接在指令中指定(长格式)*如果如果端口号端口号 256,端口号端口号 DX(短格式)(短格式)例:例:IN AX,28H IN AX,28H MOV DATA_WORD,AX MOV DATA_WORD,AX例:例:MOV DX,3FCH MOV DX,3FCH IN AX,DX IN AX,DX例:例:OUT 5,AL OUT 5,AL例:测试某状态寄存器(端口号例:测试某状态寄存器(端口号27H27H)的第)的第2 2位是否为位是否为1 1 IN AL,27H IN AL,27H TEST AL,00000100B
17、 TEST AL,00000100B JNZ ERROR JNZ ERROR ;若第2位为1,转ERROR处理 例例例例1 1 1 1:指出下列指令的错误:指出下列指令的错误:指出下列指令的错误:指出下列指令的错误 MOV AH,BX MOV BX,SI;数类型不匹配 MOV AX,SIDI;存贮器之间不能传数据 MOV MYDATABXDI,ES:AX;SI,DI不能同时用于源或目的 MOV BYTE PTRBX,1000;ES段内无AX;数类型不匹配 MOV CS,AX MOV DS,BP;CS 不能随意改变 MOV AL,DX;DS不能从基值寄存器送入 MOV AX,BXBP;BX,BP
18、不能同时用于源或目的;DX不能作为存贮器操作数表达式例:屏蔽例:屏蔽AL的第的第0、1两位两位 AND AL,0FCH例:置例:置AL的第的第5位为位为1 OR AL,20H 例:使例:使AL的第的第0、1位变反位变反 XOR AL,3例:测试某些位是例:测试某些位是0是是1 TEST AL,1 JZ EVEN *OR 0 0 1 0 0 0 0 0 *1*0 1 XOR 0 0 0 0 0 0 1 1 *1 0 *AND 1 1 1 1 1 1 0 0 *0 0 *AND 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0*1.8086的寻址方式的寻址方式与数据有关的寻址方式与数据有
19、关的寻址方式:以以 MOV 指令为例指令为例 立即寻址立即寻址 MOV AX,3069H寄存器寻址寄存器寻址 MOV AL,BH直接寻址直接寻址 MOV AX,2000H 寄存器间接寻址寄存器间接寻址 MOV AX,BX 寄存器相对寻址寄存器相对寻址 MOV AX,COUNT SI 基址变址寻址基址变址寻址 MOV AX,BP DI 相对基址变址寻址相对基址变址寻址 MOV AX,MASK BX SI 存储器寻址存储器寻址例:双精度数的加法例:双精度数的加法 (DX)=0002H (AX)=0F365H (BX)=0005H (CX)=8100H 指令序列指令序列 ADD AX,CX ;(1)
20、ADC DX,BX ;(2)(1)执行后,执行后,(AX)=7465H CF=1 OF=1 SF=0 ZF=0 (2)执行后,执行后,(DX)=0008H CF=0 OF=0 SF=0 ZF=0 数据定义及存储器分配伪操作:数据定义及存储器分配伪操作:变变量量 助助记记符符 操操作作数数 ,操操作作数数,;注注释释 助记符:助记符:DB DW DD DF DQ DTDB DW DD DF DQ DTDATA_BYTE DB 10,4,10H,?DATA_WORD DW 100,100H,-5,?-0AH0AH 04H04H 10H10H -64H64H 00H00H 00H00H 01H 01
21、H FBHFBH FFHFFH -DATA_BYTE DATA_BYTE DATA_WORD DATA_WORD 例:ARRAY DB HELLO DB AB DW AB 48H48H 45H45H 4CH4CH 4CH4CH 4FH4FH 41H41H 42H42H 42H42H 41H 41H ARRAY ARRAY VAR DB 100 DUP(?)TABLE DB 2 DUP(0,2 DUP(1,2),3)请画出数据初始化的示意图。3.汇编语言程序格式汇编语言程序格式标号标号 指令指令 寄存器寄存器 说明程序或语句说明程序或语句变量变量 伪指令伪指令 标号标号 的功能的功能 宏指令宏指
22、令 变量变量 常数常数 表达式表达式源程序的每条语句可表示为:源程序的每条语句可表示为:名字名字 操作操作 操作数操作数 ;注释注释 标号标号/变量:变量:段值、偏移量、类型三种属性段值、偏移量、类型三种属性 表达式:表达式:数字表达式数字表达式 地址表达式地址表达式表达式操作符:表达式操作符:(1)算术操作符:算术操作符:、ModVIDEO_BUF DB 25*80*2 DUP(?)ARRAY DW 1,2,3,4,5,6,7ARYEND DW?MOV CX,(ARYEND-ARRAY)/2ADD AX,BLOCK+2 ;符号地址常数 有意义 ;时意义不明确MOV AX,BX+1 ;MOV
23、AX,BX+1 ;寄存器间接寻址OPR1 EQU 25 ;00011001BOPR2 EQU 7 ;00000111BAND AX,OPR1 AND OPR2(2)逻辑和移位操作符:逻辑和移位操作符:AND、OR、XOR、NOT、SHL、SHR;汇编后结果为AND AX,1IN AL,PORT_VAL ;61HOUT PORT_VAL AND 0FEH,AL ;60HMOV AX,0FFFFH SHL 2;汇编后结果为;MOV AX,0FFFCHARRAY DW 100 DUP(?)TABLE DB ABCD ADD SI,TYPE ARRAY ;ADD SI,2ADD SI,TYPE TAB
24、LE ;ADD SI,1MOV CX,LENGTH ARRAY ;MOV CX,100MOV CX,LENGTH TABLE ;MOV CX,1MOV CX,SIZE ARRAY ;MOV CX,200MOV CX,SIZE TABLE ;MOV CX,1;指令汇编后结果为例:求首地址为例:求首地址为 ARRAY 的的 M 个字之和,个字之和,结果存入结果存入 TOTALMOV CX,MMOV CX,MMOV AX,0MOV AX,0MOV SI,AXMOV SI,AXAGAIN:AGAIN:ADD AX,ARRAYSIADD AX,ARRAYSIADD SI,2ADD SI,2LOOP AG
25、AINLOOP AGAINMOV TOTAL,AXMOV TOTAL,AX例:设有一个数组array1,含有20个无符号字元素,要找出数组中值最大的元素,并把它送到max单元中。Array1bx(ax)开始开始设置循环初始值设置循环初始值(cx)=19,(bx)=0Array1bx(Ax)bx+2(ax)(ax)max(ax)array1bx(cx)=0结束结束NYNYdatasegsegmentArray1dw20 dup(?)Maxdw?DatasegendsStacksegmentstackdw200 dup(?)StackendscodesegsegmentAssumecs:codes
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 复习题
限制150内