汇编语言复习提纲

上传人:ch****o 文档编号:159063256 上传时间:2022-10-08 格式:DOC 页数:12 大小:53.51KB
返回 下载 相关 举报
汇编语言复习提纲_第1页
第1页 / 共12页
汇编语言复习提纲_第2页
第2页 / 共12页
汇编语言复习提纲_第3页
第3页 / 共12页
点击查看更多>>
资源描述
汇编语言程序设计复习提纲第二章 微处理器的基础知识21 8086微处理器的结构22 80X86微处理器的寄存器结构23存储器的组织24 实模式下物理地址的形成本章要点18086微处理器的结构280X86微处理器的寄存器结构1)通用寄存器2)段寄存器3)指令指针寄存器4)状态标志寄存器及其含义38086的存储器组织4实模式存储器寻址、实模式下物理地址的计算5.BIOS、DOS之间的区别复习题180386微处理器有哪3中工作模式?DOS和Windows操作系统分别工作于哪一种模式?2逻辑地址、物理地址、偏移地址。3段寄存器和与其对应存放偏移地址的寄存器的缺省关系。4实模式中:可寻址内存范围、段的划分,段最小/大多少,起始?段寄存器的作用?5汇编语言用在那些场合?简述汇编语言的优点。第三章 寻址方式和指令系统31 与数据有关的寻址方式32 与存储器有关的寻址方式33 数据传送指令34 算术、逻辑运算指令35程序控制指令(包括条件转移、控制转移)36 串操作指令本章要点1与数据有关的寻址方式2与存储器有关的寻址方式3数据传送指令4 算术、逻辑运算指令5程序控制指令6串操作指令 注意以上指令的应用:例1)操作数类型不匹配例如: MOV AL,DL2)凭空构造指令例如:MUL10例如:MOVAL,DX;将内存单元的一个字节送AL,但内存操作数不能用DX改为:MOV BX,DXMOVAL,BX3)常用指令的格式、功能、对标志位的影响4)专用指令和逻辑指令对CF、ZF标志位清0的方法5)控制转移指令及其用法(JMP、JCC、JCXZ、LOOP、CALL等)6)串操作指令(MOVS、SCAS、CMPS、LODS)及REP、REPN、REPZ重复前缀使用,以上指令各完成什么功能?使用以上指令时要求的初始条件?1立即操作数、寄存器操作数、存储器操作数?2复习例题、指定习题(教材中已布置)和课堂练习(另发).第四章 伪指令及汇编语言程序组织41 常用伪指令及段定义伪指令411数据定义伪指令412符号定义伪指令413常用的汇编语言操作符414简化段定义本章要点1程序的基本框架2数据定义DB、DW、DD伪指令、符号定义伪指令的功能、格式、作用3常用的操作符(DUP、SEG、OFFSET、TYPE、LENGTH、SIZE、PTR、SHORT等)4完整的段定义、存储模型和简化的段定义的区别?5复习例题、完成习题(已布置过)、课堂练习第五章 程序的基本结构及其程序设计51顺序结构及简单程序设计52分支结构及程序实现53循环结构及程序实现54 字符处理及程序设计本章要点1阅读本章已讲过的例子5.15.6,课件中的例题2完成习题、课堂练习第六章 子程序设计61 子程序及设计方法62 子程序间参数传递的方法及实现本章要点1阅读本章已讲过的例子2完成习题第七章 高级汇编技术本章要点71宏汇编、条件汇编72汇编语言与C语言混合编程第八章 中断和输入输出程序设计本章要点81输入/输出的基本概念82 CPU与外设之间数据传送的方式83 8086中断的基本概念831中断向量832中断类型号833中断向量表84中断分类841内中断842外中断843 8086的中断优先级85 中断的操作步骤、处理子程序的设计步骤第九章 DOS、BIOS中断功能调用911 BIOS键盘中断912 DOS键盘中断923 DOS显示功能调用942 串行口功能调用本章要点掌握1BIOS键盘中断(INT 16H)2DOS键盘中断(INT 21H),其中功能号为(1、A)要求会编程3DOS显示功能调用(INT 21H),其中功能号为2、6、9要求会编程 复习题1 IBM PC中CPU与外设之间数据交换的方式?应用范围及其特点?2 实模式下类型N的中断向量放在存储器的哪些单元?偏移量和段地址分别在哪里?3 复习例题、完成指定习题 课堂练习题一1.以下为用“段基址:偏移量”形式表示的内存地址,试计算它们的物理地址。(1)12F8:0100 (2)1A2F:0103 (3)1A3F:00032自12FA:0000开始的内存单元中存放以下数据(用十六进制表示):03 06 11 A3 13 01,试分别写出12FA:0002的字节型数据、字型数据、双字数据的值。3.分别指出下列指令中源操作数和目的操作数的寻址方式。(1)MOV BX,12 (2)MOV AL,128(3)MOV BX,DX (4)MOV DS,AX(5)MOV VAR,8 (6)MOV 1000H,DX(7)MOV 6BX,CX (8)MOV AX,BXSI(9)MOV TABBPDI,AL4.设(DS)=1000H,(ES)=2000H,(SS)=1200H,(BX)=0300H,(SI)=0200H,(BP)=0100H,VAR=0060H,若目标操作为存储器操作数,请计算目标操作数的物理地址。(1)MOV BX,12 (2)MOV AL,128(3)MOV BX,DX (4)MOV ES:SI,AX(5)MOV VAR,8 (6)MOV 1000H,DX(7)MOV 6BX,CX (8)MOV BXSI,AX(9)MOV 6BPSI,AL5.设(DS)=2000H,(SS)=3000H,(BX)=0300H,(CS)=1200H,(IP)=0100H,指令标号LAB的偏移量为0060H,(20300H)=50H,(20301H)=01H,(20306H)=0BH,(20307H)=05H,试确定以下转向指令的物理地址。(1)JMP BX (2)JMP 6BX6.设2000:0624单元有一条两字节的JMP SHORT OBJ指令,若其中的位移量为:(1)27H (2)6BH (3)0C6H试写出转向目标的物理地址。7.指出下列指令的错误。(1)MOV AX,BX (2)MOV AL,1280H(3)MOV BX,9 (4)MOV DS,1000H(5)MOV VAR,BX (6)MOV M1,M2(7)MOV 6,CX (8)MOV AX,SIDI(9)MOV CS,AX (10)MOV BX,OFFSET VARSI8.写出把首地址为BUF的字型数据的第2个字送到AX寄存器的指令,要求使用以下几种寻址方式。(1)使用BX的寄存器间接寻址方式(2)使用BX的寄存器相对寻址方式(3)使用BX的基址变址寻址解:(1)MOV BX,OFFSET BUF ADD BX,02H MOV AX,WORD PTRBX (2)MOV BX,OFFSET BUF MOV AX,WORD PTRBX+2 (3)MOV BX,OFFSET BUF MOV SI ,BYTE PTR 2 MOV AX,WORD PTRBX+SI9.在ARRAY数组中依次存放了七个字数据,紧接着是名为ZERO的字单元,表示如下:ARRAY DW 23,36,2,100,32000,34,0ZERO DW ?(1) 如果BX包含数组ARRAY的起始地址,编写指令把数据0传送给ZERO单元。(2) 如果BX包含数据0在数组中的位移量,编写指令把数据0传送给ZERO单元。解:(1) MOV BX,OFFSET ARRAY MOV AX,WORD PTRBX+7 MOV ZERO,AX(2)MOV SI,OFFSET ARRAYMOV AX,WORD PTRSI+BXMOV ZERO,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开始的存储区中。程序段如下:LEA SI,1000HLEA DI,1070HMOVCX,100CLDREPMOVSB解9编一个程序,把自1000H单元开始的100个字节数据传送到自1050H开始的存储区中(注意:数据区有重叠)。解:程序段如下;MOVBX,1000HLEASI,100+BXMOVBX,1050HLEADI,100+BXMOVCX,100STDREPMOVSB解10存储器A000H开始有100个带符号的字数组,要求从数组中分离出两个数组,P(J)包含所有正数,N(K)包含所有负数,将正数数组存放在首地址B000H开始处,将负数数组存放在首地址C000H开始处。解.将正、负数分离的程序段:MOVCX,64HMOVBX,0A000HMOVSI,0B000HMOVDI,0C000HAGAIN:MOVAX,BXCMPAX,0HJGEPOSTVNEGTV:MOVDI,AXINCDIINCDIJMPNXTPOSTV:MOVSI,AXINC SIINC SINXT:DECCXJNZAGAINHLT解11从0100H和010A单元开始,存放两个分别为10个字节的BCD数(地址最低处存放的是最低字节),求它们的和并且存放在0114H开始的存储单元中。解.求两个分别为10个字节的BCD数之和程序段:LEASI,0100HLEADI,0114HCLCMOVCL,10HE:MOVAL,SIMOVBL,0AHSIADCAL,BLDAAMOVDI,ALINCSIINCDIDECCLJNZHE解12. 从0200H单元开始有100个数,编程序检查,若是正数保持不变,若为负数,则将相应单元的内容取补后送回。解:LEABX,0200HMOVCL,100CHECK:MOVAL,BXANDAL,ALJSMINUSINCBXJMPLOPMINUS:NEGALMOVBX,ALINCBXLOP:LOOPCHECKEXIT:解13自STRING单元开始存放一个字符串(以$结尾);编程序统计这个字符串的长度(不包括$);把字符串的长度放在STRING 单元,把整个字符串下移两个单元。解:程序如下:LEASI,STRINGMOVCX,0NEXT0:MOVAL,SICMP AL,$JZEXIT0INCCXINCSIJMPNEXT0MOVDX,CXNEXT1:MOVSI,STRINGCXMOVAL,SIMOV2SI,ALDECSILEADI,STRING+2SILOOPNEXT1MOVSTRING,DX解14自STRI1单元开始存放一个字符串(前两个字节为字符串长度),给每个字符配上偶检验位并送回原处,编程序。解:程序段如下:MOVCX,STRIILEABX,STRII+2LOP:MOVAL,BXANDAL,ALJPEVEN;PF=1,偶数个1,转EVENORAL,80H;PF=0,奇数个1,将最高位置1(偶检验)EVEN:MOVBX,ALLOOP LOPEXIT:汇编语言程序设计复习题一、填空题、1、80X86实模式下处理器地址总线为_位,这也决定了其寻址的最大内存为_节。2、8086处理器的工作寄存器分为_,_,_和_四类。3、循环指令的三种形式为_,_和_。4、指令MOV AX,HIGH 1280H指令执行后AX=_。5、循环程序结构可由三部分组成,分别为_,_和_。6、过程调用CALL SUBS的属性是由_决定的。7、同一模块内,调用程序与子程序间的变量传送方式有_,_,_,_。8、I/O设备与CPU之间数据送的方式包括_,_和_。9、当键盘中断发生时,CPU能否响应,受两个条件的控制,一是_,二是_。10、文本方式下,显示屏上的每个字符在存储器中用_字节表示,保存字符的_。11、在彩色图形方式中,屏幕上的一点在存储器中是用_个BIT保存的。12、如果一个程序是由多个模块组成的,应该通过_把它们连接在一起。13、IBMBIO.COM是一个_,它提供了_接口,完成将数据从_,或把数据从_。14、ORG 1000HX DB 12HY DWX+$-1001H ZDDY(DS)=1234H,(BX)=1000H,(SI)=0002H求下列指令执行完后指定寄存器的值。MOVAX,Y+1;(AX)=_。LDSSI,Z; (SI)= _H ,(DS)=_ H。JMP Z-1; (CS)= _ H,(IP)=_H。PUSHY;栈顶的内容为 _H。15、由外设或协处理器引起的中断一般称为 。8086/8088的 中断是不受中断允许屏蔽。二、判断题(正确的在题后括号内划“ ”,错误的划“ ”)1、有ADD AX,BX,当执行后若OF=1,则说明有溢出,结果是错误的。( )2、若X为一字单元,则LESAX,X是不合法的。 ( )3、LOCAL 伪操作只能用在宏定义体内,它可以放在宏体中任何地方。( )4、DS AX,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码,不考虑溢出,存储格式为高地址存高字节)。提示:DATASEGMENTXDB2 DUP(?)YDB2DUP(?)ZDB2DUP(?)DATAENDSCODESEGMENT2、编程序实现。将一正数N插入一个已排序数组的正确位置。该数组的首地址和末地址分别为ARRAY-HEAD,ARRAY-END,其中所有数均为正数,已按递增顺序排序。四、程序填空1、从键盘接收一个字符,要求第一个键入的字符必须是$,若不是则退出;若是则开始接收键入的字符并顺序存放在首地址为BUFFER的缓冲区中(空格符及$不存),直到接收到空格符时退出程序。(每空2分)DATASEGMENTBUFFERDW80DUP(?)FLAGDW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEABX,_MOVFLAG,0NEXT:MOVAH,01;输入一个字符INT21HTESTFLAG,01H_FOLLOWCMPAL,$JNZ _ MOVFLAG,1JMPNEXTFOLLOW:CMPAL,20HJZNEXTMOVBX,AL_JMPNEXTEXIT:MOVAH,4CHINT21HCODEENDSENDSTART2、以下程序完成对首地址为A的N字带符号数组从大到小排序,填上缺少的指令(每空2分)。DATASEGMENTADW N DUP(?)DATAENDSCODESEGMENTASSUMECS:CODESTART:_MOVAX,DATAMOVDS,AXMOVCX,N_LOOP1:MOVDI,CXMOVBX,0LOOP2:MOVAX,ABXCMPAX,ABX+2_XCHGAX,ABX+2MOVABX,AXCONTINUE:ADDBX,2LOOPLOOP2_LOOP LOOP1MOVAH,4CH;带返回码结束INT 21HCODEENDSENDSTART1、 以下程序完成求N!,给出程序运行的结果并用图表示出堆栈最满时的状态。(4分)DATASEGMENTNDW3RESULTDW?DATAENDSSTACKSEGSEGMENTDW128DUP(0)TOSLABELWORDSTACKSEGENDSPROGNAMSEGMENTMAINPROCFARASSUMECS:PROGRAM,DS:DATA,SS:STACKSEGSTART:MOVAX,STACKSEGMOVSS,AXMOVSP,OFFSETTOSPUSHDSSUBAX,AXPUSHAXMOVAX,DATAMOVDS,AXMOVBX,NPUSHBXCALLFACTPOPRESULTRETMAINENDPFACTPROCNEARPUSHAXPUSHBPMOVBP,SPMOVAX,BP+6CMPAX,0JNEFACT1INCAXJMPEXITFACT1:DECAXPUSHAXCALLFACTPOPAXMULBP+6EXIT:MOVBP+6,AXPOPBPPOP AXRETFACTENDPPROGNMENDSENDSTART
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 中学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!