汇编语言复习资料
- 格式:doc
- 大小:379.00 KB
- 文档页数:67
汇编语言期末复习资料整理第二章1、寄存器组(1)通用寄存器数据寄存器EAX(32位)AX(16位)AH(8位)(高位)AL(8位)(低位)累加器EBX(32位)BX(16位)BH(8位)(高位)BL(8位)(低位)基址变址ECX(32位)CX(16位)CH(8位)(高位)CL(8位)(低位)计数器EDX(32位)DX(16位)DH(8位)(高位)DL(8位)(低位)数据指针或变址寄存器ESP(32位)SP(16位)堆栈指针寄存器EBP(32位)BP(16位)基址指针寄存器EDI(32位)DI(16位)目的变址寄存器ESI(32位)SI(16位)源变址寄存器(2)专用寄存器EIP(32位)IP(16位)指令指针寄存器EFLAGS(32位)FLAGS(16位)标志寄存器ESP (32位) SP(16位)堆栈指针寄存器2、标志位的符号表示、3、段寄存器CS(16位)代码段DS(16位)数据段SS(16位)堆栈段ES(16位)附加段4、段寄存器和相应存放偏移地址的寄存器之间的默认组合第三章1、七种寻址方式(举例)立即寻MOV AX,3069H寄存器寻MOV AL,BH在内存中的五种寻址直接寻MOV AX,[2000H]寄存器间接寻MOV AX,[BX]寄存器相对寻MOV AX,COUNT[SI] 或者MOV AX,[SI+COUNT](不推荐) 基址变址寻址MOV AX,[BP][DI]相对基址变址寻址MOV AX,MASK[BX][SI]2、指令系统I.数据传送指令(1)通用数据传送指令MOV 传送MOVSX 带符号扩展传送用源操作数的符号位来填充目的操作数的高位数据位。
例:MOVSX EAX,CL把CL寄存器中的8位数,符号扩展为32位数,送到EAX寄存器中。
MOVZX 带零扩展传送恒用0来填充目的操作数的高位数据位例:MOVZX DX,AL把AL寄存器中的8位数,零扩展成16位数,送到DX寄存器中。
PUSH 进栈入栈时高位字节先入栈,低位字节后入栈。
SP指向栈顶。
POP 出栈以“先进后出”方式工作。
SP指向栈顶PUSHA/PUSHAD 所有寄存器进栈PUSHA(16位):进栈次序为:AX,CX,DX,BX,SP,BP,SI,DIPUSHAD(32位):进栈次序为:EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI POPA/POPAD 所有寄存器出栈POPA(16位):出栈次序为:DI,SI,BP,SP,BX,DX,CX,AXPOPAD(32位):出栈次序为:EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX XCHG 交换例:XCHG AX,BX 交换AX与BX中的数据(2)累加器专用传送指令(只限于使用累加器)IN 输入例:IN AX,28HMOV DATA_WORD,AX把端口28的内容经过AX传送到存储单元DATA_WORD中。
OUT 输出例:OUT 5,AL从AL寄存器输出一个字节到端口5。
XLAT 换码(3)地址传送指令LEA 有效地址送寄存器LDS 指针送寄存器和DSLES 指针送寄存器和ESLFS 指针送寄存器和FSLGS 指针送寄存器和GSLSS 指针送寄存器和SS①LEALEA REG,SRC把源操作数的有效地址送到指定的寄存器中②LDS、LES、LFS、LGS、LSS指针送寄存器和段寄存器指令LDS REG,SRC把SRC的偏移地址放到REG中,又把偏移地址(SRC+2)放到DS中(4)标志寄存器传送指令LAHF 标志送AHSAHF AH送标志寄存器PUSHF/PUSHFD 标志进栈POPF/POPFD 标志出栈(5)类型转换指令CBW 字节转换为字CWD 字转换为双字CDQ 双字转换为4字BSWAP 字节交换以CWD为例,把AX的内容扩展到DX,DX为高位,AX为低位。
如果AX最高有效位=1,(DX)=0FFFFH;如果AX的最高有效位=0,(DX)=0。
CBW为AL扩展至AH,形成AXCDQ为EAX扩展至EDX,形成EDX:EAXII.算术指令(1)加法指令ADD 加法例:ADD DST,SRC把DST与SRC的和放入DST中ADC 带进位加法例:ADC DST,SRC把DST、SRC与进位标志CF的和放入DST中INC 加1例:INC OPROPR加一XADD例:XADD DST,SRC首先把DST与SRC交换并相加汇编语言习题集一DX:单项选择题DU:多项选择题TK:填空题MC:名词解释v JD:简答题CXFX:程序分析题CXTK:程序填空题BC:编程题第1章:基础知识1、在汇编语言程序的开发过程中使用宏功能的顺序是( C )。
DXA、宏定义,宏调用B、宏定义,宏展开C、宏定义,宏调用,宏展开D、宏定义,宏展开,宏调用2、汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省略的项是( B )。
DXA、名字项B、操作项C、操作数项D、注释项3、可屏蔽中断就是它的请求是否被CPU响应要受(IF )的控制。
DX4、使用LINK连接命令,执行后可生成文件的扩展名为(EXE )。
DX5、在寄存器间接寻址中,如果指令中指定的寄存器为BP,则操作数在堆栈段中,段地址在SS 寄存器中。
TK6、注释项用于说明程序段或是一条和几条指令的功能,一般用;(或分号)表示注释的开始。
TK7、DOS系统功能调用方式为:(1)置入口参数;(2)中断程序编号送AH 寄存器后执行INT 21H。
TK8、通常主程序和子程序间参数传送的方法有三种:用寄存器传递、用存储单元传递、用堆栈传递(顺序可调换)。
TK9、中断是CPU暂停当前程序的执行,转而执行处理紧急事务的程序,并在该事务处理完后能自动恢复执行原先程序的过程。
在此,称引起紧急事务的事件为中断源。
TK10、在字符串操作指令中,DS∶SI 指向源串,ES∶DI 指向目的串。
TK11、计算机系统通过接口与外围设备通信。
TK12、键盘I/O、显示I/O和打印I/O分别对应16H 、10H 和17H 号中断。
TK13、字符显示模式缓冲区中的一个字对应于屏幕上的一个字符。
每个字的第一个字节为显示字符的ASCII码,第二个字节为显示字符的属性。
TK14、简述上机运行汇编语言程序的过程。
JD答:首先打开未来汇编,新建一个空的汇编文件,后缀为.asm,然后输入汇编程序代码,保存,再编译成机器指令,然后连接成可执行文件,即exe文件,最后再运行。
15、简述程序中指令和伪指令的区别。
JD答:能被计算机识别并执行的二进制代码,它规定了计算机能完成的某一操作。
伪指令是对汇编起某种控制作用的特殊命令,其格式与通常的操作指令一样,并可加在汇编程序的任何地方,但它们并不产生机器指令。
16、十六进制数88H,可表示成下面几种形式,请找出错误的表示(④)。
DX①无符号十进制数136②带符号十进制数-120③压缩型BCD码十进制数88④8位二进制数-8的补码表示17、指令指针寄存器是(IP )。
DX18、汇编语言语句格式中对名字项的规定如下,请找出其中错误的说法(B)DXA.名字的第一个字符可以是大写英文字母及小写英文字母B.名字的第一个字符可以是字母、数字及、@、_C.名字的有效长度≤31个字符D.在名字中不允许出现$19、CS寄存器属于(段寄存器)。
DX20、已知物理地址(371F0H)=12H,(371F1H)=34H,(371F2H)=56H,如从地址371F0H中取出一个字的内容是(3412H )。
DX21、一个有16个字的数据区,它的起始地址是70A0H∶DDF6H,则这个数据区最末一个字单元的物理地址是(7E814H )。
DX22、简述上机运行汇编语言程序的过程。
JD 答:首先打开未来汇编,新建一个空的汇编文件,后缀为.asm,然后输入汇编程序代码,保存,再编译成机器指令,然后连接成可执行文件,即exe文件,最后再运行。
第2章:8086/8088的寻址方式和指令系统1、下列指令属于基址加变址寻址方式的是(MOV DX,DS:[BP][SI] )。
DX2、当程序顺序执行时,每取一条指令语句,IP指针增加的值是( D )。
DXA.1 B.2 C.3 D.由指令长度决定的3、下列属于合法的指令是( D )DXA.MOV DS,ES B.MOV [SI],[DI] C.MOV AX,BL D.MOV [DI],BL4、若AX=349DH,CX=000FH。
则执行指令AND AX,CX后,AX的值是(000DH )。
DX5、设DS=8225H,DI=3942H,指令NEG BYTE PTR[DI]操作数的物理地址是( 85B92H ) DX6、下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是( B ) DXA、AX,BX,CX,DXB、BX,BP,SI,DIC、SP,IP,BP,DXD、CS,DS,ES,SS7、对寄存器AX的内容乘以4的正确指令序列是( SHL AX,1 SHL,AX,1 )。
DX8、执行INC指令除对SF、ZF有影响外,还要影响的标志位是( OF,AF,PF )。
DX9、设DH=10H,执行NEG DH指令后,正确的结果是( DH=0F0H CF=1 )。
DX10、下列传送指令中有语法错误的是( A )。
DXA、MOV CS,AXB、MOV DS,AXC、MOV SS,AXD、MOV ES,AX11、下面指令执行后,改变AL寄存器内容的指令是( D )。
DXA、TEST AL,02HB、OR AL,ALC、CMP AL,BLD、AND AL,BL12、执行除法指令后,影响的标志位是( AF,CF,OF,PF,SF,ZF都不确定)。
DX13、执行下面指令序列后,结果是( AX=0FF82H )。
DXMOV AL,82HCBW14、与MOV BX,OFFSET V AR指令完全等效的指令是( D )。
DXA、MOV BX,V ARB、LDS BX,V ARC、LES BX,V ARD、LEA BX,V AR15、在段定义时,如果定位类型用户未选择,就表示是隐含类型,其隐含类型是( PARA )。
DX16、MOV SP,3210HPUSH AX 执行上述指令序列后,SP寄存器的值是( 320EH )。
DX17、BUF DW 10H DUP(3 DUP(2,10H),3,5)上述语句汇编后,为变量BUF分配的存储单元字节数是( 100H )。
DX18、MOV AH,7896HADD AL,AH上述指令执行后,标志位CF和OF的值是(CF=1,OF=0 )。
DX19、完成将带符号数AX的内容除以2的正确指令是(SHR AX,1 )。
DX20、在汇编语言程序中,对END语句的叙述正确的是( C )。