1汇编语言复习资料第1、2章微处理器的结构和存储器组成1、程序设计语言分哪三类?【机器语言、汇编语言和高级语言】2、二进制数转十进制、十六制数、十进制数转二进制数、十六制数转十进数。3、十进制数的压缩和非压缩BCD码表示方法。4、计算机显示、打印字符的编码一般采用什么码。【ASCⅡ码】5、8086微处理器的功能结构分哪两大部件。【总线接口单元BIU和执行单元EU;BIU负责与存储器接口,EU部分负责指令的执行。】6、8086有哪些通用寄存器和段寄存器?哪些可即做8位又可以作16位通用寄存器?哪些在指令中可以装偏移地址?【通用寄存器:八位:AL、AH、BL、BH、CL、CH、DL、DH十六位:AX、BX、CX、DX、DI、SI、SP、BP三十二位:EAX、EBX、ECX、EDX、EDI、ESI、ESP、EBP既可做八位又可作十六位:AX、BX、CX、DX段寄存器:SS、CS、DS、ES、FS】7、掌握实模式下的内存分段管理方法。8、堆栈的基本操作有哪两种,操作原则是什么。对堆栈完成进出栈操作后,堆栈栈顶指针SP如何改变。9、微机的总线按功能分为哪三大总线。【地址总线AB、数据总线DB、控制总线CB】10、8086微机内存是分段管理的,这样存储器单元的逻辑地址分为哪两个两部分,计算为物理地址公式是什么?【逻辑地址分为段基址和偏移量。物理地址=10H*段基址+偏移量】11、标志寄存器中有哪些状态标志位和控制标志位,中文名称和符号分别为什么?有什么作用?【状态标志位:(1)辅助进位标志AF这个标志用于十进制算术运算指令中。(2)进位标志CF这个标志主要用于多字节数的加、减法运算。(3)溢出标志OF多用于算术运算中。(4)符号标志SF它的值与运算结果的最高位相同。(5)奇偶标志PF这个标志可用于检查在数据传送过程中是否发生错误。(6)零标志ZF若运算的结果为0,则ZF=1,否则ZF=0。控制标志位:(1)方向标志DF若用指令置DF=1,则引起串操作指令为自动减量指令,也就是从高地址到低地址处理字符串;若使DF=0,则串操作指令就为自动增量指令,也就是从低地址到高地址处理字符串。(2)中断允许标志IF若指令中置IF=1,则允许CPU去接收外部的可屏蔽中断请求;若使IF=0,则屏蔽上述的中断请求,对内部产生的中断不起作用。(3)追踪标志TF置TF标志,使处理进入单步方式,以便于调试。在这个方式中,CPU在每条指令执行以后,产生一个内部中断,允许程序在每条指令执行以后进行检查。】第3章寻址方式和指令系统1、汇编语言指令中寻址方式有哪些,能正确识别每种寻址方式?【P49】重点掌握立即、寄存器、直接、寄存器间接、基址、变址、基址加变址、带位移基址变址(相对)寻址方式。【立即寻址:源操作数是立即数寄存器寻址:操作数放在寄存器中直接寻址:操作数在内存中,内存地址直接告诉了寄存器间接寻址:操作数在存储器中,但操作数地址的偏移量在寄存器中基址寻址:由指定的基址寄存器内容,加上指令中给定的位移量作为操作数的有效地址。EA=[基址寄存器+位移量]变址寻址:由变址SI、DI寄存器内容,加上指令中给定的位移量作为操作数的有效地址。EA=[变址寄存器+位移量]基址加变址寻址:由指令中的基址寄存器内容和变址寄存器内容相加得到操作数的有效地址。EA=[基址寄存器+变址寄存器]2带位移的基址加变址寻址:操作数在内存中,由变址寄存器、基址寄存器和位移量相加得到内存有效地址。EA=基址寄存器+变址寄存器+位移量2、熟悉讲过的每条指令的功能。【P58】3、基本串操作指令有哪五条?助记符是什么?【串传送指令MOVSB串装入指令LODSB串存储指令STOSB串比较指令CMPSB串扫描指令SCASB】4、8086算术运算指令有哪些?【P65】DAA和AAA指令的用法及区别。【P75】【AAA:非压缩BCD码加法调整指令;对AL中的加法结果调整调整规则:若(AL&0FH)9或标志AF=1,则AL=AL+6,AH=AH+1,AF=1,CF=AF,AL=AL&0FHDAA:压缩BCD码加法十进制调整指令调整规则:若(AL&0FH)9或标志AF=1,则AL=AL+6,AF=1;若(AL&0F0H)90H或标志CF=1,则AL=AL+60H,CF=1】5、AND、OR、XOR、NOT指令主要作用是什么?哪些是对指定位清0、置1、取反?【P79】【AND主要用于:将指定位清0,其余位不变。要清0的位与0相与,不变的位与1相与。OR主要用于:将指定位置1,其余位不变。要置1的位与1相或,不变的位与0相或XOR主要用于:A.将指定位取反,其余位不变。要取反的位与1相异或,不变的位与0相异或。B.异或指令还有对寄存器清0的作用,自已与自已相异或,可达到清0目的。总结:给某一个寄存器清0的方法,共有4种:(以AX为例)(1)MOVAX,0(2)SUBAX,AX(3)ANDAX,0(4)XORAX,AX6、SAL、SHR指令的用法。(移一位和移多位的区别)。【P83】7、ADD和ADC,SUB和SBB指令的区别及用法。【P65】【ADD:加法指令SUB:减法指令ADC:带进位的加法指令SBB:带进位的减法指令】8、指令TEST的用法及作用举例。(81页)【TEST:逻辑测试指令格式:TESTOPRD1,OPRD2功能:完成两个操作数按位进行逻辑与运算,结果反映在标志位上,不保留结果。应用场合:用于不希望改变原有操作数的情况下,检测某一位或某几位的状态。方法:把测试的数据与某一检测常数相与,结果为零(即ZF=1),则测试位为0,否则为1。例:若要测试AL的最低位是否为1,可用TESTAL,01HJNZNEXTALD7D6D5D4D3D2D1D0000000010000000D0例:若要测试BX的最高位是否为0,可用TESTBX,1000HJZNEXT..BX=100100110100111010000000000000001000000000000000】9、DEBUG中各操作命令的作用。【(1)退出DEBUG命令Q格式:Q功能:退出DEBUG,返回DOS。(2)显示存储单元命令D格式:D[存储单元地址]或D[存储单元地址范围](3)修改存储单元命令E格式1:E[存储单元地址][替换内容]格式2:E[存储单元地址](4)检查和修改寄存器内容的命令R格式1:R功能:显示CPU内所有寄存器内容和标志位状态。格式2:R寄存名功能:显示和修改某个寄存器的内容。例:RAX如不修改则按回车键,否则键入要修改的内容。格式3:RF功能:显示和修改标志位状态。3(5)运行命令G格式:G[=起始地址1][地址2…..]功能:从起始地址开始运行程序。如不指定则从当前的CS:IP开始运行。(6)跟踪命令T格式1:T[=[起始地址]]功能:从指定起始地址开始执行一条指令后停下来,显示所有寄存器内容及标志位的值。如未指定起始地址则从当前的CS:IP开始运行。格式2:T[=[起始地址][n]]功能:从指定起始地址开始执行n条指令停下来。(7)汇编命令A格式:A[起始地址]功能:允许键入汇编语言语句,并能把它们汇编成机器代码,相继地存放在从指定地址开始的存储区。(8)反汇编命令U格式1:U[起始地址]功能:从起始地址开始反汇编32个字节。如果地址被省略,则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。格式2:U[起始范围]功能:对指定范围的存储单元进行反汇编。(9)命名命令N格式:N文件名[文件名]功能:该命令把两个文件标识符格式化在CS:5CH和CS:6CH的两个文件控制块中,以便在其后用L或W命令把文件装入或存盘。(10)装入命令L格式:L[起始地址]功能:装入已在CS:5CH中格式化了的文件控制块所指定的文件。如未指定起始地址,且装入的为EXE程序,则装入到CS:0000开始的存储区中,如果装入的为COM结构程序,则装入到CS:0100开始的存储区中。(11)写命令W格式:W[起始地址]功能:将起始地址开始的数据写入由CS:5CH处的文件控制块所指定的文件中。如果未指定地址则数据从CS:0100开始。11、指令XCHR和指令XLAT指令的区别。【P63】【指令LEA是装入有效地址指令、指令ADC是带进位的加法指令、指令SBB是带进位的减法指令、指令CMP是比较指令、指令MUL是无符号乘法指令、指令DIV是无符号除法指令、指令XOR是异或指令、指令CLD标志DF清0指令、指令STD是标志DF置1指令、指令LOOP是重复控制指令。】12、指令REPMOVSB功能,指令REPZCMPSB功能是。【指令REPMOVSB功能重复执行后面的串传送指令,直到不满足重复条件(CX≠0)指令REPZCMPSB功能是重复执行后面的串比较指令,直到不满足重复条件(CX≠0且ZF=1)】13、MOVAX,[BX][DI]是将源操作数所指内存字单元里的值送到AX中,LEAAX,[BX][DI]是将源操作数指出的地址送到AX中。第4章伪指令、源程序结构1、汇编语言的上机操作过程分为哪四个步骤。【编辑——汇编——连接——运行】2、标号用来表示指令地址,不可用指令的助记符(关键字)、伪指令(保留字)。标号在同一程序中必须是唯一的。3、ASSUME语句的功能是什么。【ASSUME是保留字,指示段寄存器对应前面定义的哪个段。】4、8086汇编语言源程序中语句的结构是由哪四个部分组成。EXE结构的源程序一般包括哪四个段。【标号和名字、助记符和定义符、操作数、注释EXE结构的源程序一般包括:数据段、堆栈段、附加段、代码段四段】5、变量和标号有哪三个属性。标号的类型属性是定义(FAR)和近(NEAR)。【变量和标号的属性一样,都有段属性(SEGMENT)、偏移属性(OFFSET)、类型属性(TYPE)】6、回送(分析)操作符(seg,offset,length,sizetype)、属性修改(合成)(ptr,short)操作符各有哪些,使用方法?【分析操作符:SEG、OFFSET、TYPE、SIZE、LENGTH合成操作符:PTR、THIS】【P85】7、汇编语言一般包括哪三类语句。【指令语句、伪指令语句、宏指令语句】8、生成COM文件的源程序其程序结构的两个特点是:1.程序中第一条可执行语句应从代码段的0100H单元开始存放;2.整个程序只有一个段。将.EXE文件转换成.COM文件的命令是:EXE2BIN。9、段寄存器值的装入。10、源程序的扩展名【.ASM】,目标文件的扩展名【.OBJ】,可执行文件【.EXE】,命令文件的扩展名【.COM】11、根据数据定义语句,画出存储空间及内容分配图。如:4T1DB‘ABC’T2DW1234H,677AHT3DB‘BYTE’,-1,2DUP(0,3DUP(1))12、结束程序返回操作系统的两种主要方法(常用的和标准序方法)。第5、6、7、8章1、汇编语言结构程序有哪三种基本结构。【顺序结构、分支结构和循环结构】2、指令JMP、JZ、JNZ、JC、JNC、JA、JB、JG、JL、JS的区别。在循环控制指令隐含用哪个寄存器作循环次数计数器。重点掌握LOOP的用法。【P150】3、循环程序一般由哪四部分组成。基本结构形式为哪两种形式。【初始化部分、循环体、修改部分、控制部分。基本结构形式:“先执行,后判断”结构和“先判断,后执行”结构】4、掌握什么是段内,段间及直接和间接转移以及表示方法。【P150】5、在串操作指令中,哪些寄存器的值会自动修改,操作数地址的改变方式,与FLAG的哪个标志位有关?它为0或1时,地址如何修改。掌握串操作指令前的重复前缀有哪些,作用各为什么?注意与重复汇编伪指令的区别。【P173】6、在子程序设计中,一般通过哪五种方法传递参数。【通过寄存器传递、用存储单元传递、通过堆栈传递】7、什么是中断,中断源,中断矢量表,给出中断类型号后,如何得到中断服务子程序的入口地址。如何把中断服务子程序的地址写入到中断矢量表中。【P305】中断可分为两种:硬件(外部中断)和内部中断(软件)两