汇编语言学习资料..pdf
《汇编语言学习资料..pdf》由会员分享,可在线阅读,更多相关《汇编语言学习资料..pdf(57页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、汇编语言期末复习资料整理汇编语言期末复习资料整理第二章第二章1 1、寄存器组、寄存器组(1 1)通用寄存器)通用寄存器数据寄存器数据寄存器EAXEAX(3232 位)位)AX AX(1616 位)位)AH AH(8 8 位)位)(高位)(高位)AL(8 AL(8 位位)(低位)累加器(低位)累加器EBXEBX(3232 位)位)BX BX(1616 位)位)BH BH(8 8 位)位)(高位)(高位)BL(8 BL(8 位位)(低位)基址变址(低位)基址变址ECXECX(3232 位)位)CX CX(1616 位)位)CH CH(8 8 位)位)(高位)(高位)CL(8 CL(8 位位)(低位
2、)计数器(低位)计数器EDXEDX(3232 位)位)DX DX(1616 位)位)DH DH(8 8 位)位)(高位)(高位)DL(8 DL(8 位位)(低位)数据(低位)数据指针或变址寄存器指针或变址寄存器ESPESP(3232 位)位)SP SP(1616 位)位)堆栈指针寄存器堆栈指针寄存器EBPEBP(3232 位)位)BP BP(1616 位)位)基址指针寄存器基址指针寄存器EDIEDI(3232 位)位)DI DI(1616 位)位)目的变址寄存器目的变址寄存器ESIESI(3232 位)位)SI SI(1616 位)位)源变址寄存器源变址寄存器(2 2)专用寄存器)专用寄存器E
3、IPEIP(3232 位)位)IP IP(1616 位)位)指令指针寄存器指令指针寄存器EFLAGSEFLAGS(3232 位)位)FLAGS FLAGS(1616 位)位)标志寄存器标志寄存器ESP(32ESP(32 位位)SP)SP(1616 位)位)堆栈指针寄存器堆栈指针寄存器2 2、标志位的符号表示、标志位的符号表示、标志位标志位OFOF溢出(是溢出(是/否)否)DFDF方向(减量方向(减量/增量)增量)IFIF中断(允许中断(允许/关闭)关闭)SFSF符号(负符号(负/正)正)ZFZF零(是零(是/否)否)AFAF辅助进位(是辅助进位(是/否)否)PFPF奇偶(偶奇偶(偶/奇)奇)C
4、FCF进位(是进位(是/否)否)3 3、段寄存器、段寄存器CSCS(1616 位)代码段位)代码段 DS DS(1616 位)数据段位)数据段SSSS(1616 位)堆栈段位)堆栈段 ES ES(1616 位)附加段位)附加段4 4、段寄存器和相应存放偏移地址的寄存器之间的默认组合、段寄存器和相应存放偏移地址的寄存器之间的默认组合段段CSCSSSSSDSDSESES第三章第三章1 1、七种寻址方式(举例)、七种寻址方式(举例)立即寻立即寻 MOV AX,3069H MOV AX,3069H寄存器寻寄存器寻 MOV AL,BH MOV AL,BH在内存中的五种寻址在内存中的五种寻址直接寻直接寻
5、MOV AX,2000H MOV AX,2000H寄存器间接寻寄存器间接寻 MOV AX,BX MOV AX,BX1偏移偏移IPIPSPSP 或或 BPBPBXBX、DIDI、SISI 或一个或一个 1616 位数位数DIDI(用于串指令)(用于串指令)标志为标志为 1 1OVOVDNDNEIEINGNGZRZRACACPEPECYCY标志为标志为 0 0NVNVUPUPDIDIPLPLNZNZNANAPOPONCNC寄存器相对寻寄存器相对寻 MOV AX,COUNTSI MOV AX,COUNTSI 或者或者 MOV AX,SI+COUNT(MOV AX,SI+COUNT(不推荐不推荐)基址
6、变址寻址基址变址寻址 MOV AX,BPDI MOV AX,BPDI相对基址变址寻址相对基址变址寻址 MOV AX,MASKBXSI MOV AX,MASKBXSI2 2、指令系统、指令系统数据传送指令数据传送指令通用数据传送指令通用数据传送指令MOVMOV传送传送MOVSXMOVSX带符号扩展传送带符号扩展传送用源操作数的符号位来填充目的操作数的高位数据位。例:MOVSX EAX,CL把 CL 寄存器中的 8 位数,符号扩展为 32 位数,送到 EAX 寄存器中。MOVZXMOVZX带零扩展传送带零扩展传送恒用 0 来填充目的操作数的高位数据位例:MOVZX DX,AL把 AL 寄存器中的
7、8 位数,零扩展成 16 位数,送到 DX 寄存器中。PUSHPUSH进栈进栈入栈时高位字节先入栈,低位字节后入栈。SP 指向栈顶。POPPOP出栈出栈以“先进后出”方式工作。SP 指向栈顶PUSHA/PUSHADPUSHA/PUSHAD所有寄存器进栈所有寄存器进栈PUSHAPUSHA(1616 位)位):进栈次序为:进栈次序为:AX,CX,DX,BX,SP,BP,SI,DIAX,CX,DX,BX,SP,BP,SI,DIPUSHAD(32PUSHAD(32 位位):进栈次序为:进栈次序为:EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDIEAX,ECX,EDX,EBX,ESP,EB
8、P,ESI,EDIPOPA/POPADPOPA/POPAD所有寄存器出栈所有寄存器出栈POPA(16POPA(16 位位):出栈次序为:出栈次序为:DI,SI,BP,SP,BX,DX,CX,AXDI,SI,BP,SP,BX,DX,CX,AXPOPAD(32POPAD(32 位位):出栈次序为:出栈次序为:EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAXEDI,ESI,EBP,ESP,EBX,EDX,ECX,EAXXCHGXCHG交换交换例:XCHG AX,BX交换 AX 与 BX 中的数据累加器专用传送指令累加器专用传送指令(只限于使用累加器)(只限于使用累加器)ININ输入输入
9、例:IN AX,28HMOV DATA_WORD,AX把端口 28 的内容经过 AX 传送到存储单元 DATA_WORD 中。OUTOUT输出输出例:OUT 5,AL2从 AL 寄存器输出一个字节到端口 5。XLATXLAT换码换码地址传送指令地址传送指令LEALEA有效地址送寄存器有效地址送寄存器LDSLDS指针送寄存器和指针送寄存器和 DSDSLESLESLFSLFSLGSLGSLSSLSSLEALEALEA REG,SRC把源操作数的有效地址送到指定的寄存器中LDS REG,SRCLDSLDS、LESLES、LFSLFS、LGSLGS、LSSLSS 指针送寄存器和段寄存器指令指针送寄存器
10、和段寄存器指令指针送寄存器和指针送寄存器和 ESES指针送寄存器和指针送寄存器和 FSFS指针送寄存器和指针送寄存器和 GSGS指针送寄存器和指针送寄存器和 SSSS把 SRC 的偏移地址放到 REG 中,又把偏移地址(SRC+2)放到 DS 中(1 1)标志寄存器传送指令标志寄存器传送指令LAHFLAHF标志送标志送 AHAHSAHF AHSAHF AH 送标志寄存器送标志寄存器PUSHF/PUSHFDPUSHF/PUSHFD标志进栈标志进栈POPF/POPFDPOPF/POPFD标志出栈标志出栈(2 2)CBWCBWCWDCWDCDQCDQBSWAPBSWAP效位=0,(DX)=0。CBW
11、 为 AL 扩展至 AH,形成 AXCDQ 为 EAX 扩展至 EDX,形成 EDX:EAXII.II.算术指令算术指令(1 1)例:ADD DST,SRC把 DST 与 SRC 的和放入 DST 中ADCADC例:ADC DST,SRC把 DST、SRC 与进位标志 CF 的和放入 DST 中INCINC例:INC OPR OPR 加一XADDXADD例:XADD DST,SRC首先把 DST 与 SRC 交换并相加加加 1 1带进位加法带进位加法加法指令加法指令ADDADD加法加法类型转换指令类型转换指令字节转换为字字节转换为字字转换为双字字转换为双字双字转换为双字转换为 4 4 字字字节
12、交换字节交换以 CWD 为例,把 AX 的内容扩展到 DX,DX 为高位,AX 为低位。如果 AX 最高有效位=1,(DX)=0FFFFH;如果 AX 的最高有3汇编语言习题集一汇编语言习题集一DX:单项选择题 DU:多项选择题 TK:填空题 MC:名词解释v JD:简答题 CXFX:程序分析题 CXTK:程序填空题 BC:编程题第第 1 1 章:基础知识章:基础知识1、在汇编语言程序的开发过程中使用宏功能的顺序是(C)。DXA、宏定义,宏调用B、宏定义,宏展开D、宏定义,宏展开,宏调用C、宏定义,宏调用,宏展开(B)。DXA、名字项B、操作项C、操作数项D、注释项3、可屏蔽中断就是它的请求是
13、否被 CPU 响应要受(IF)的控制。DX4、使用 LINK 连接命令,执行后可生成文件的扩展名为(EXE)。DX5、在寄存器间接寻址中,如果指令中指定的寄存器为 BP,则操作数在 堆栈段中,段地址在 SS寄存器中。TK6、注释项用于说明程序段或是一条和几条指令的功能,一般用;(或分号)表示注释的开始。TK7、DOS 系统功能调用方式为:(1)置入口参数;(2)中断程序编号送 AH寄存器后执行 INT 21H。TK8、通常主程序和子程序间参数传送的方法有三种:用寄存器传递、用存储单元传递、用堆栈传递(顺序可调换)。TK9、中断是 CPU 暂停当前程序的执行,转而执行处理紧急事务的程序,并在该事
14、务处理完后能自动恢复执行原先程序的过程。在此,称引起紧急事务的事件为中断源。TK10、在字符串操作指令中,DS SI指向源串,ES DI指向目的串。TK11、计算机系统通过接口与外围设备通信。TK12、键盘 I/O、显示 I/O 和打印 I/O 分别对应 16H、10H和 17H号中断。TK13、字符显示模式缓冲区中的一个字对应于屏幕上的一个字符。每个字的第一个字节为显示字符的 ASCII码,第二个字节为显示字符的属性。TK14、简述上机运行汇编语言程序的过程。JD答:首先打开未来汇编,新建一个空的汇编文件,后缀为.asm,然后输入汇编程序代码,保存,再编译成机器指令,然后连接成可执行文件,即
15、 exe 文件,最后再运行。15、简述程序中指令和伪指令的区别。JD答:能被计算机识别并执行的二进制代码,它规定了计算机能完成的某一操作。伪指令是对汇编起某种控制作用的特殊命令,其格式与通常的操作指令一样,并可加在汇编程序的任何地方,但它们并不产生机器指令。16、十六进制数 88H,可表示成下面几种形式,请找出错误的表示()。DX 无符号十进制数 136 带符号十进制数120 压缩型 BCD 码十进制数 88 8 位二进制数8 的补码表示17、指令指针寄存器是(IP)。DX18、汇编语言语句格式中对名字项的规定如下,请找出其中错误的说法(B)DXA名字的第一个字符可以是大写英文字母及小写英文字
16、母B名字的第一个字符可以是字母、数字及、_C名字的有效长度31 个字符D在名字中不允许出现$19、CS 寄存器属于(段寄存器)。DX42、汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省略的项是20、已知物理地址(371F0H)=12H,(371F1H)=34H,(371F2H)=56H,如从地址371F0H 中取出一个字的内容是(3412H)。DX21、一个有 16 个字的数据区,它的起始地址是 70A0HDDF6H,则这个数据区最末一个字单元的物理地址是(7E814H)。DX22、简述上机运行汇编语言程序的过程。JD答:首先打开未来汇编,新建一个空的汇编文件,
17、后缀为.asm,然后输入汇编程序代码,保存,再编译成机器指令,然后连接成可执行文件,即 exe 文件,最后再运行。第第 2 2 章:章:8086/80888086/8088 的寻址方式和指令系统的寻址方式和指令系统1、下列指令属于基址加变址寻址方式的是(MOV DX,DS:BPSI)。DX2、当程序顺序执行时,每取一条指令语句,IP 指针增加的值是(D)。DX A1 B2 C3 D由指令长度决定的3、下列属于合法的指令是(D)DX AMOV DS,ES BMOV SI,DI CMOV AX,BL DMOV DI,BL4、若 AX=349DH,CX=000FH。则执行指令 AND AX,CX 后
18、,AX 的值是(000DH)。DX5、设 DS=8225H,DI=3942H,指令 NEG BYTE PTRDI操作数的物理地址是(85B92H)DX6、下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是(B)DXA、AX,BX,CX,DX B、BX,BP,SI,DI C、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
19、=1)。DX10、下列传送指令中有语法错误的是(A)。DXA、MOV CS,AX B、MOV DS,AX C、MOV SS,AX D、MOV ES,AX11、下面指令执行后,改变 AL 寄存器内容的指令是(D)。DXA、TEST AL,02H B、OR AL,AL C、CMP AL,BL D、AND AL,BL12、执行除法指令后,影响的标志位是(AF,CF,OF,PF,SF,ZF 都不确定)。DX13、执行下面指令序列后,结果是(AX=0FF82H)。DXMOV AL,82HCBW14、与 MOV BX,OFFSET VAR 指令完全等效的指令是(D)。DXA、MOV BX,VAR B、LD
20、S BX,VAR C、LES BX,VARD、LEA BX,VAR15、在段定义时,如果定位类型用户未选择,就表示是隐含类型,其隐含类型是(PARA)。DX16、MOV SP,3210HPUSH AX执行上述指令序列后,SP 寄存器的值是(320EH)。DX17、BUF DW 10H DUP(3 DUP(2,10H),3,5)上述语句汇编后,为变量 BUF 分配的存储单元字节数是(100H)。DX18、MOV AH,7896H ADD AL,AH上述指令执行后,标志位 CF 和 OF 的值是(CF=1,OF=0)。DX19、完成将带符号数 AX 的内容除以 2 的正确指令是(SHR AX,1)
21、。DX20、在汇编语言程序中,对 END 语句的叙述正确的是(C)。DX AEND 语句是一可执行语句 BEND 语句表示程序执行到此结束 CEND 语句表示源程序到此结束 DEND 语句在汇编后要产生机器码21、已知 BX=2000H,SI=1234H,则指令 MOV AX,BX+SI+2的源操作在(数据段中偏移量为 3236H 的字节)中。DX22、下面指令序列执行后完成的运算,正确的算术表达式应是(y=x2-1)。DX5MOV AL,BYTE PTR XSHL AL,1DEC ALMOV BYTE PTR Y,AL23、已知(AX)=1234H,执行下述三条指令后,(AX)=(0000H
22、)。DXMOV BX,AXNEG BXADD AX,BXA1234HB0EDCCHC6DCCHD24、将 DX 的内容除以 2,正确的指令是(C)。DXADIV 2BDIV DX,2CSAR DX,1DSHL DX,125、有如下指令序列:DX ORG 40H DA1 DW 0AB12H,8574H MOV AX,DA1 MOV BX,OFFSET DA1上述指令执行后,寄存器 AX 和 BX 的值分别为(AB12H,40H)。26、下列数值表达式和地址表达式中,错误的是(D)。DX AMOV AL,8*14+4 BMOV SI,OFFSET BUF+13 CMOV CX,NUM2-NUM1
23、DMOV CX,NUM2+NUM127、数据段定义如下:DX X1 DB 10H,50,1 X2 DW 10H,20,3 X3 DD?COUNT EQU X3-X1变量 COUNT 的值是(9)。28、为使 CX=-1 时,转至 MINUS 而编制了一指令序列,其中错误的序列是(C)。DXA、INC CX JZ MINUSB、SUB CX,OFFFFH JZ MINUSC、AND CX,OFFFFH JZ MINUSD、XOR CX,OFFFFH JZ MINUS29、AL 和 VAR 字节单元中分别存放一个带符号数,执行 CMP AL,VAR 时,如 ALVAR,那么溢出位和符号位 的关系是
24、(OF=SF)。DX30、下面是关于汇编语言程序中使用 RET 的描述,不正确的是(C )。DX A每一个子程序中允许有多条 RET 指令。B每一个子程序结束之前一定要有一条 RET 指令。C每一个子程序中只允许有一条 RET 指令。D以过程形式表示的代码段,一定有 RET 指令存在。31、在串操作指令前使用重复前缀指令 REPE,终止串的重复操作条件是(CX=0 或 ZF=0)。DX32、用 MOV 指令将十进制 64 以组合型 BCD 码格式送入 AX,正确使用的指令是(MOV AX,0604H)。DX33、重复前缀指令 REP 的重复次数由 CX决定。TK34、DR1 DB 10H,30
25、H DR2 DW 10H DUP(0,2 DUP(2)MOV BL,LENGTH DR1 MOV CL,LENGTH DR2请问指令执行后,BL 和CL 的值分别为 1和 10H。TK635、设(SP)=100H,(AX)=0FFFFH STC PUSH AX ADC AX,0 PUSH AX POP BX上述程序段运行后,(BX)=0,(SP)=0FEH。CXFX36、假设数据段定义如下:DA1 DWC,D DA2 DB 18 DUP(?)DA3 DW$DA2 MOV BX,DA3MOV AX,DA1上述指令执行后,BX 寄存器中的内容是 12H(或 18),AH 寄存器中的内容是 00H,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 学习 资料
限制150内