汇编复习提纲.docx
- 文档编号:15026509
- 上传时间:2023-06-29
- 格式:DOCX
- 页数:21
- 大小:22.78KB
汇编复习提纲.docx
《汇编复习提纲.docx》由会员分享,可在线阅读,更多相关《汇编复习提纲.docx(21页珍藏版)》请在冰点文库上搜索。
汇编复习提纲
《汇编语言程序设计》复习提纲
第二章微处理器的基础知识
2.18086微处理器的结构(运算器、控制器)
2.280X86微处理器的寄存器结构。
(数据寄存器、指针及变址寄存器、标志寄存器、指令指针寄存器、段寄存器)
2.3存储器的组织(数据存放原则、物理地址计算、8086地址总线宽度为20位=1M字节)
2.4实模式下物理地址的形成
本章要点
1.8086微处理器的结构
2.80X86微处理器的寄存器结构
1)通用寄存器
2)段寄存器
3)指令指针寄存器
4)状态标志寄存器及其含义
3.8086的存储器组织
4.实模式存储器寻址、实模式下物理地址的计算
5.BIOS、DOS之间的区别
复习题
1.80386微处理器有哪3中工作模式?
DOS和Windows操作系统分别工作于哪一种模式?
答:
实模式、保护模式、虚拟8086模式。
实模式、保护模式。
2.逻辑地址、物理地址、偏移地址。
3.段寄存器和与其对应存放偏移地址的寄存器的缺省关系。
4.实模式中:
可寻址内存范围、段的划分,段最小/大多少,起始?
段寄存器的作用?
5.汇编语言用在那些场合?
简述汇编语言的优点。
答:
面向硬件的编程;优点:
1直接控制底层硬件、执行速度和效率高。
第三章寻址方式和指令系统
3.1与数据有关的寻址方式
3.2与存储器有关的寻址方式(若使用BP,默认段为SS,其他都是DS)
3.3数据传送指令
3.4算术、逻辑运算指令
3.5程序控制指令(包括条件转移、控制转移)
3.6串操作指令
本章要点
1.与数据有关的寻址方式
2.与存储器有关的寻址方式
3.数据传送指令
4.算术、逻辑运算指令
5.程序控制指令
6.串操作指令
注意以上指令的应用:
例
1)操作数类型不匹配
例如:
MOVAL,DL
2)凭空构造指令
例如:
MUL10
例如:
MOVAL,[DX];将内存单元的一个字节送AL,
但内存操作数不能用[DX]
改为:
MOVBX,DX
MOVAL,[BX]
3)常用指令的格式、功能、对标志位的影响
4)专用指令和逻辑指令对CF、ZF标志位清0的方法
5)控制转移指令及其用法(JMP、JCC、JCXZ、LOOP、CALL等)
6)串操作指令(MOVS、SCAS、CMPS、LODS)及REP、REPN、REPZ重复前缀使用,以上指令各完成什么功能?
使用以上指令时要求的初始条件?
1.立即操作数、寄存器操作数、存储器操作数?
2.复习例题、指定习题(教材中已布置)和课堂练习(另发).
第四章伪指令及汇编语言程序组织
4.1常用伪指令及段定义伪指令
4.1.1数据定义伪指令
4.1.2符号定义伪指令
4.1.3常用的汇编语言操作符
4.1.4简化段定义
本章要点
1.程序的基本框架
2.数据定义DB、DW、DD伪指令、符号定义伪指令的功能、格式、作用
3.常用的操作符(DUP、SEG、OFFSET、TYPE、LENGTH、SIZE、PTR、SHORT等)
4.完整的段定义、存储模型和简化的段定义的区别?
5.复习例题、完成习题(已布置过)、课堂练习
第五章程序的基本结构及其程序设计
5.1顺序结构及简单程序设计
5.2分支结构及程序实现
5.3循环结构及程序实现
5.4字符处理及程序设计
本章要点
1.阅读本章已讲过的例子5.1~5.6,课件中的例题
2.完成习题、课堂练习
第六章子程序设计
6.1子程序及设计方法
6.2子程序间参数传递的方法及实现
本章要点
1.阅读本章已讲过的例子
2.完成习题
第七章高级汇编技术
本章要点
7.1宏汇编、条件汇编
7.2汇编语言与C语言混合编程
第八章中断和输入输出程序设计
本章要点
8.1输入/输出的基本概念
8.2CPU与外设之间数据传送的方式
8.38086中断的基本概念
8.3.1中断向量
8.3.2中断类型号
8.3.3中断向量表
8.4中断分类
8.4.1内中断
8.4.2外中断
8.4.38086的中断优先级
8.5中断的操作步骤、处理子程序的设计步骤
第九章DOS、BIOS中断功能调用
9.1.1BIOS键盘中断
9.1.2DOS键盘中断
9.2.3DOS显示功能调用
9.4.2串行口功能调用
本章要点
掌握
1.BIOS键盘中断(INT16H)
2.DOS键盘中断(INT21H),其中功能号为(1、A)要求会编程
3.DOS显示功能调用(INT21H),其中功能号为2、6、9要求会编程
复习题
1.IBMPC中CPU与外设之间数据交换的方式?
应用范围及其特点?
2.实模式下类型N的中断向量放在存储器的哪些单元?
偏移量和段地址分别在哪里?
3.复习例题、完成指定习题
课堂练习题一
1.以下为用“段基址:
偏移量”形式表示的内存地址,试计算它们的物理地址。
(1)12F8:
0100
(2)1A2F:
0103(3)1A3F:
0003
2.自12FA:
0000开始的内存单元中存放以下数据(用十六进制表示):
030611A31301,试分别写出12FA:
0002的字节型数据、字型数据、双字数据的值。
3.分别指出下列指令中源操作数和目的操作数的寻址方式。
(1)MOVBX,12
(2)MOVAL,128
(3)MOV[BX],DX(4)MOVDS,AX
(5)MOVVAR,8(6)MOV[1000H],DX
(7)MOV6[BX],CX(8)MOVAX,[BX][SI]
(9)MOVTAB[BP][DI],AL
4.设(DS)=1000H,(ES)=2000H,(SS)=1200H,(BX)=0300H,(SI)=0200H,(BP)=0100H,VAR=0060H,若目标操作为存储器操作数,请计算目标操作数的物理地址。
(1)MOVBX,12
(2)MOVAL,128
(3)MOV[BX],DX(4)MOVES:
[SI],AX
(5)MOVVAR,8(6)MOV[1000H],DX
(7)MOV6[BX],CX(8)MOV[BX][SI],AX
(9)MOV6[BP][SI],AL
5.设(DS)=2000H,(SS)=3000H,(BX)=0300H,(CS)=1200H,(IP)=0100H,指令标号LAB的偏移量为0060H,(20300H)=50H,(20301H)=01H,(20306H)=0BH,(20307H)=05H,试确定以下转向指令的物理地址。
(1)JMPBX
(2)JMP6[BX]
6.设2000:
0624单元有一条两字节的JMPSHORTOBJ指令,若其中的位移量为:
(1)27H
(2)6BH(3)0C6H
试写出转向目标的物理地址。
7.指出下列指令的错误。
(1)MOV[AX],BX
(2)MOVAL,1280H
(3)MOV[BX],9(4)MOVDS,1000H
(5)MOVVAR,[BX](6)MOVM1,M2
(7)MOV6,CX(8)MOVAX,[SI][DI]
(9)MOVCS,AX(10)MOVBX,OFFSETVAR[SI]
8.写出把首地址为BUF的字型数据的第2个字送到AX寄存器的指令,要求使用以下几种寻址方式。
(1)使用BX的寄存器间接寻址方式
(2)使用BX的寄存器相对寻址方式
(3)使用BX的基址变址寻址
解:
(1)MOVBX,OFFSETBUF
ADDBX,02H
MOVAX,WORDPTR[BX]
(2)MOVBX,OFFSETBUF
MOVAX,WORDPTR[BX+2]
(3)MOVBX,OFFSETBUF
MOVSI,BYTEPTR2
MOVAX,WORDPTR[BX+SI]
9.在ARRAY数组中依次存放了七个字数据,紧接着是名为ZERO的字单元,表示如下:
ARRAYDW23,36,2,100,32000,34,0
ZERODW?
(1)如果BX包含数组ARRAY的起始地址,编写指令把数据0传送给ZERO单元。
(2)如果BX包含数据0在数组中的位移量,编写指令把数据0传送给ZERO单元。
解:
(1)
MOVBX,OFFSETARRAY
MOVAX,WORDPTR[BX+7]
MOVZERO,AX
(2)
MOVSI,OFFSETARRAY
MOVAX,WORDPTR[SI+BX]
MOVZERO,AX
课堂练习二
8.利用变址寄存器,编一个程序,把自1000H单元开始的100个字节数据传送到自1070H开始的存储区中。
9.编一个程序,把自1000H单元开始的100个字节数据传送到自1050H开始的存储区中(注意:
数据区有重叠)。
10.存储器A000H开始有100个带符号的字数组,要求从数组中分离出两个数组,P(J)包含所有正数,N(K)包含所有负数,将正数数组存放在首地址B000H开始处,将负数数组存放在首地址C000H开始处。
11.从0100H和010A单元开始,存放两个分别为10个字节的BCD数(地址最低处存放的是最低字节),求它们的和并且存放在0114H开始的存储单元中。
12.从0200H单元开始有100个数,编程序检查,若是正数保持不变,负数则取补后送回。
13.自STRING单元开始存放一个字符串(以$结尾);编程序统计这个字符串的长度(不包括$);把字符串的长度放在STRING单元,把整个字符串下移两个单元。
14.自STRI1单元开始存放一个字符串(前两个字节为字符串长度),给每个字符配上偶检验位并送回原处,编程序。
解8:
利用变址寄存器,编一个程序,把自1000H单元开始的100个字节数据传送到自1070H开始的存储区中。
程序段如下:
LEASI,1000H
LEADI,1070H
MOVCX,100
CLD
REPMOVSB
解9.编一个程序,把自1000H单元开始的100个字节数据传送到自1050H开始的存储区中(注意:
数据区有重叠)。
解:
程序段如下;
MOVBX,1000H
LEASI,[100+BX]
MOVBX,1050H
LEADI,[100+BX]
MOVCX,100
STD
REPMOVSB
解10.存储器A000H开始有100个带符号的字数组,要求从数组中分离出两个数组,P(J)包含所有正数,N(K)包含所有负数,将正数数组存放在首地址B000H开始处,将负数数组存放在首地址C000H开始处。
解.将正、负数分离的程序段:
MOVCX,64H
MOVBX,0A000H
MOVSI,0B000H
MOVDI,0C000H
AGAIN:
MOVAX,[BX]
CMPAX,0H
JGEPOSTV
NEGTV:
MOV[DI],AX
INCDI
INCDI
JMPNXT
POSTV:
MOV[SI],AX
INCSI
INCSI
NXT:
DECCX
JNZAGAIN
HLT
解11.从0100H和010A单元开始,存放两个分别为10个字节的BCD数(地址最低处存放的是最低字节),求它们的和并且存放在0114H开始的存储单元中。
解.求两个分别为10个字节的BCD数之和程序段:
LEASI,0100H
LEADI,0114H
CLC
MOVCL,10
HE:
MOVAL,[SI]
MOVBL,0AH[SI]
ADCAL,BL
DAA
MOV[DI],AL
INCSI
INCDI
DECCL
JNZHE
解12.从0200H单元开始有100个数,编程序检查,若是正数保持不变,若为负数,则将相应单元的内容取补后送回。
解:
LEABX,0200H
MOVCL,100
CHECK:
MOVAL,[BX]
ANDAL,AL
JSMINUS
INCBX
JMPLOP
MINUS:
NEGAL
MOV[BX],AL
INCBX
LOP:
LOOPCHECK
EXIT:
解13.自STRING单元开始存放一个字符串(以$结尾);编程序统计这个字符串的长度(不包括$);把字符串的长度放在STRING单元,把整个字符串下移两个单元。
解:
程序如下:
LEASI,STRING
MOVCX,0
NEXT0:
MOVAL,[SI]
CMPAL,‘$’
JZEXIT0
INCCX
INCSI
JMPNEXT0
MOVDX,CX
NEXT1:
MOVSI,STRING[CX]
MOVAL,[SI]
MOV2[SI],AL
DECSI
LEADI,STRING+2[SI]
LOOPNEXT1
MOVSTRING,DX
解14.自STRI1单元开始存放一个字符串(前两个字节为字符串长度),给每个字符配上偶检验位并送回原处,编程序。
解:
程序段如下:
MOVCX,STRII
LEABX,STRII+2
LOP:
MOVAL,[BX]
ANDAL,AL
JPEVEN;PF=1,偶数个1,转EVEN
ORAL,80H;PF=0,奇数个1,将最高位置1(偶检验)
EVEN:
MOV[BX],AL
LOOPLOP
EXIT:
《汇编语言程序设计》复习题
一、填空题、_______________________________________________________________________________________________________________________________
1、80X86实模式下处理器地址总线为___________位,这也决定了其寻址的最大内存为__________节。
2、8086处理器的工作寄存器分为____________,____________,____________和__________四类。
3、循环指令的三种形式为____________,____________和___________。
4、指令MOVAX,HIGH1280H指令执行后AX=___________。
5、循环程序结构可由三部分组成,分别为_______________,____________和____________。
6、过程调用CALLSUBS的属性是由___________________决定的。
7、同一模块内,调用程序与子程序间的变量传送方式有__________________,______________,__________________,__________________。
8、I/O设备与CPU之间数据送的方式包括___________________,_______________和________________。
9、当键盘中断发生时,CPU能否响应,受两个条件的控制,一是_______________,二是______________。
10、文本方式下,显示屏上的每个字符在存储器中用___________字节表示,保存字符的____________________________。
11、在彩色图形方式中,屏幕上的一点在存储器中是用___________个BIT保存的。
12、如果一个程序是由多个模块组成的,应该通过____________把它们连接在一起。
13、IBMBIO.COM是一个__________________,它提供了__________________接口,完成将数据从_____________________________,或把数据从______________________。
14、ORG1000H
XDB12H
YDWX+$-1001H
ZDDY
(DS)=1234H,(BX)=1000H,(SI)=0002H
求下列指令执行完后指定寄存器的值。
MOVAX,[Y+1];(AX)=__________________。
LDSSI,Z;(SI)=_______________H,(DS)=__________________H。
JMPZ-1;(CS)=_____________H,(IP)=____________________H。
PUSHY;栈顶的内容为______________H。
15、由外设或协处理器引起的中断一般称为。
8086/8088的中断是不受中断允许屏蔽。
二、判断题(正确的在题后括号内划“”,错误的划“”)
1、有ADDAX,BX,当执行后若OF=1,则说明有溢出,结果是错误的。
()
2、若X为一字单元,则LESAX,X是不合法的。
()
3、LOCAL伪操作只能用在宏定义体内,它可以放在宏体中任何地方。
()
4、DSAX,SRC指令将SRC的偏移量赋给AX,将段地址赋给DS。
()
5、DAA指令是对除法运算的进一步整理。
()
7、REPNECMPSB指令可完成比较两字符串是否相同的功能。
()
8、MOVAX,[AX]是不合法指令。
()
9、POPCS:
[BX]是合法的指令。
()
10、当循环体可能执行0次时,不能用DO-WHILE结构。
()
11、当CPU处于死循环状态时,是无法响应硬中断的。
()
12、在生成的可执行文件中,伪指令是不存在的。
()
13、CPU响应一次中断时,要把(IP)、(CS)、(PSW)保存入栈。
()
14、在汇编格式中,条件转移指令的OPR应指定一个目标地址,这个目标地址应放在本条转移指令地址的-128~+127个字节范围内。
()
15、INT指令和INTO指令产生的中断,以及除法出错中断都不能被禁止。
()
16、断点中断是供DEBUG调试程序使用的,它的中断类型为3。
()
17、产生单步中断时,CPU自动地将PSW、CS和IP的内容入栈,然后清除TF、IF。
()
三、编程序完成下列各题
1、X、Y、Z都为4位压缩的BCD码,编程序实现X=X+Y-Z(结果仍为BCD码,不考虑溢出,存储格式为高地址存高字节)。
提示:
DATASEGMENT
XDB2DUP(?
)
YDB2DUP(?
)
ZDB2DUP(?
)
DATAENDS
CODESEGMENT
2、编程序实现。
将一正数N插入一个已排序数组的正确位置。
该数组的首地址和末地址分别为ARRAY-HEAD,ARRAY-END,其中所有数均为正数,已按递增顺序排序。
四、程序填空
1、从键盘接收一个字符,要求第一个键入的字符必须是‘$’,若不是则退出;若是则开始接收键入的字符并顺序存放在首地址为BUFFER的缓冲区中(空格符及’$’不存),直到接收到空格符时退出程序。
(每空2分)
DATASEGMENT
BUFFERDW80DUP(?
)
FLAGDW?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
LEABX,___________
MOVFLAG,0
NEXT:
MOVAH,01;输入一个字符
INT21H
TESTFLAG,01H
___________________FOLLOW
CMPAL,‘$’
JNZ_____________
MOVFLAG,1
JMPNEXT
FOLLOW:
CMPAL,20H
JZNEXT
MOV[BX],AL
___________________
JMPNEXT
EXIT:
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
2、以下程序完成对首地址为A的N字带符号数组从大到小排序,填上缺少的指令(每空2分)。
DATASEGMENT
ADWNDUP(?
)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE
START:
___________________
MOVAX,DATA
MOVDS,AX
MOVCX,N
__________________
LOOP1:
MOVDI,CX
MOVBX,0
LOOP2:
MOVAX,A[BX]
CMPAX,A[BX+2]
____________________
XCHGAX,A[BX+2]
MOVA[BX],AX
CONTINUE:
ADDBX,2
LOOPLOOP2
___________________
LOOPLOOP1
MOVAH,4CH;带返回码结束
INT21H
CODEENDS
ENDSTART
1、以下程序完成求N!
,给出程序运行的结果并用图表示出堆栈最满时的状态。
(4分)
DATASEGMENT
NDW3
RESULTDW?
DATAENDS
STACKSEGSEGMENT
DW128DUP(0)
TOSLABELWORD
STACKSEGENDS
PROGNAMSEGMENT
MAINPROCFAR
ASSUMECS:
PROGRAM,DS:
DATA,SS:
STACKSEG
START:
MOVAX,STACKSEG
MOVSS,AX
MOVSP,OFFSETTOS
PUSHDS
SUBAX,AX
PUSHAX
MOVAX,DATA
MOVDS,AX
MOVBX,N
PUSHBX
CALLFACT
POPRESULT
RET
MAINENDP
FACTPROCNEAR
PUSHAX
PUSHBP
MOVBP,SP
MOVAX,[BP+6]
CMPAX,0
JNEFACT1
INCAX
JMPEXIT
FACT1:
DECAX
PUSHAX
CALLFACT
POPAX
MUL[BP+6]
EXIT:
MOV[BP+6],AX
POPBP
POPAX
RET
FACTENDP
PROGNMENDS
ENDSTART
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编 复习 提纲