ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:20.57KB ,
资源ID:9622978      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9622978.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(汇编语言程序设计复习.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

汇编语言程序设计复习.docx

1、汇编语言程序设计复习知识点第一章 基础知识(1)正负数的补码表示, 掌握计算机中数和字符的表示;eg.假设机器字长为8位,+3补 = B,-3补= H 。十六进制数0FFF8H表示的十进制正数为65528D,表示的十进制负数为-8D。8位二进制数被看成是带符号补码整数时,其最小值是 -128 ,最大值是 127 。第二章80x86计算机组织(1)中央处理机CPU的组成和80x86寄存器组,重点:专用寄存器,段寄存器eg: IP寄存器中保存的是?代码段中的偏移地址FLAGS标志寄存器中共有几位条件状态位6位,有几位控制状态位2位,标志寄存器分为哪2类?陷阱标志,中断标志。 (2)存储单元的地址和

2、内容 每一个字节单元给以一个唯一的存储器地址,称为物理地址;一个存储单元中存放的信息称为该存储单元的内容。存储器地址的分段,(低位字节存放)低地址,(高位字节存放)高地址 ;实模式下逻辑地址、选择器和偏移地址 ;物理地址的表示 段基地址加上偏移地址。eg.如果SS=6000H,说明堆栈段起始物理地址是_60000H_。 已知字节(00018H)=14H,字节(00017H)=20H,则字(00017H)为_1420H_。如果(SI)=0088H,(DS)=5570H,对于物理地址为55788H的内存字单元,其内容为0235H,对于物理地址为5578AH的内存字单元,其内容为0E60H,那么执行

3、指令LDS SI,SI以后,(SI)= 0235H ,(DS)= 0E60H .第三章80x86的指令系统和寻址方式与数据有关的寻址方式(立即寻址方式,寄存器寻址方式,直接寻址方式,寄存器间接寻址方式,寄存器相对寻址方式,基址变址寻址方式,相对基址变址寻址方式)和与转移地址有关的寻址方式(段内直接寻址,段内间接寻址,段间直接寻址,段间间接寻址)。数据传送指令(通用数据传送指令、累加器专用传送指令、输入输出指令)、算术指令(加法指令、减法指令(*加减指令对4个标志位的影响of,cf,sf,zf)、乘法指令(*乘法指令的要求:目的操作数必须是累加器)、除法指令(*被除数在累加器中,除法指令执行完以

4、后,商和余数在?)、逻辑指令(逻辑运算指令(*XOR,AND,OR,TEST指令及指令执行后对标志位的影响)、移位指令)、串处理指令(与REP相配合工作的MOVS、STOS、LODS指令,与REPE/REPZ和REPNE/REPNZ联合工作的CMPS、SCAS指令)、控制转移指令(无条件转移指令、条件转移指令、循环指令、子程序调用指令、中断)。eg.【习题3.8】假定(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数据段中变量名VAL的偏移地址为0050H,试指出下列源操作数字段的寻址方式是什么?其物理地址值是

5、多少?(1) MOV AX, 0ABH (2) MOV AX, BX(3) MOV AX, 100H (4) MOV AX, VAL(5) MOV AX, BX (6) MOV AX, ES:BX(7) MOV AX, BP (8) MOV AX, SI(9) MOV AX, BX+10 (10) MOV AX, VALBX(11) MOV AX, BXSI (12) MOV AX, VALBXSI假定 (DS)= 1000H, (SS)= 2000H,(SI)= 3000H,(BX)= 0100H,(BP)= 0200H,数据段中变量名为OVAR的偏移地址值为0050H,请指出下列源操作数的

6、寻址方式是什么?其物理地址值是多少?1. MOV DX, 1000H2. MOB DX, BX3. MOV DX, OVARBP4. MOV DX, BX+SI5. MOV DX, OVARBXSI如果JMP指令采用段间间接寻址,那么转移地址存放在4个相邻字节单元中,其中前两个字节存放的是 偏移地址 ,而后两个字节存放的是 段地址 。设SP=4AH,执行段内返回指令RET 4后,SP的值是50H 。重复前缀指令REP的重复次数由 计数寄存器Count Reg 决定。在串操作指令前使用重复前缀指令REPE,终止串的重复操作条件是 (Count Reg)=0 或 ZF=0 条件转移指令的转移范围?

7、(只能做段内的短转移)转移指令JMP NEAR PTR PROCA的转移范围是8000H7FFFH 。当标志位 CF =1时表示无符号数运算产生溢出,而当标志位 OF =1是表示带符号数运算产生溢出。计算机系统通过和外部设备通信。循环控制指令LoopNZ/LoopNE控制循环继续执行的条件是_ZF=0且(Count Reg)不等于0_。DOS系统功能调用方式为:(1)设置入口参数;(2)中断程序编号送 AH 寄存器后执行INT 21H。(教材Page320,page335)阅读下面的程序片段,并分析执行结果。MOV AX,723AHMOV BX,0C86BH SUB AL,BLSBB AH,B

8、HXOR AL,01HADC AX,0执行该程序片段后:(AX)= 0A9CEH ,CF = 0 ,OF = 0 。第四章 汇编语言程序格式伪操作:数据定义及存储器分配伪操作,表达式赋值伪操作EQU,段定义伪操作、程序开始和结束伪操作、对准伪操作、基数控制伪操作。汇编语言程序格式:汇编语言源程序中的每个语句的组成格式:名字项、操作项(包括?)、操作数项和注释项eg.1.在某数据段内定义变量BUFFER DB 30 DUP (20)表达式 TYPE BUFFER的值为 1 。2.BUFl DB 3 DUP(0,2 DUP(1,2),3) COUNT EQU $-BUFl 变量COUNT的值是 1

9、8 。3.DATA SEGMENT DB 2EH DUP(0) VAR1 DB 12H,34H VAR2 DB 10H DUP(O) ADR1 DW VAR1,VAR2DATA ENDS 为使ADR1+2字存储单元中内容为0030H,横线上应选用的语句是_ORG $+30H_。4.BUF DW 4,6,$+2,若汇编时BUF分配的偏移地址是0042H,则汇编后BUF数组中第三个字的值是 0048H 。5.设某数据段: DATA SEGMENTORG 20HNUM1=8NUM2=NUM1+10HDA1 DBCOMPUTERDB 0AH,0DHCOUNT EQU $-DA1DA2 DW CO,MP

10、,UT ,ERDATA ENDS请回答:(1)DA1的偏移地址是: 0020H 。(2)COUNT的值是 10 。(3)DA2+5字节单元的内容是 U 。6.执行下列指令序列后,AX寄存器中的内容是什么? TABLE DW 10,20,30,40,50 ENTRY DW 3 MOV BX, OFFSET TABLE ADD BX, ENTRY MOV AX, BX7. 下面指令执行后,变量DAB中的内容是_0F5H_。 DAW DW 2A05H DAB DB 0FAH : MOV AL,BYTE PRT DAW SUB DAB,AL第五章 循环与分支程序设计循环程序结构,分支程序结构eg. B

11、EG为起始地址的存储区域中存放有100个字节数据,现将其首、尾颠倒过来,重新排放这100个字节数据。请在空行处各填上一条指令完善该程序。MOV CX,31HLEA SI,BEGMOV DI,SI ADD DI,99 DON:MOV AL,SI XCHG AL,DI MOV SI,AL INC SI DEC DILOOP DON阅读如下程序段: ADRR DB XXH,XXH,XXHNUM EQU -ADRR RETT DB? MOV CX,NUM MOV BX,-1 DON:INC BX CMP ADRRBX,0LOOPZ DONJNZ NEXTMOV BL,OFFHNEXT:MOV RETT

12、,BLHLT请回答(1)该程序完成的功能是什么?在以ADRR为起始地址的数组中,查找第一个非0数据(2)程序执行后RETT字节单元中的内容是什么?若找到则将第一个非零数据在数组中的偏移量送入RETT单元中;若无非0数据,则将0FFH送入RETT单元中。阅读如下程序片段,回答所提出的问题,假定X1,X2,XN为无符号数。 ORG 100HBLOK DW X1,X2,XNCOUNT EQU(-BLOK)/2RESULT DW ? LEA BX,BLOK-2MOV CX,COUNTXOR AX,AXGOON:ADD BX,2CMP AX,BXJAE NEXTMOV AX,BXNEXT:LOOP GO

13、ONMOV RESULT,AX程序片段执行完后,RESULT字单元的内容=MAX(X1,X2,Xn) ,(BX)= 100H+2*(COUNT-1) ,程序循环次数= COUNT 。下列程序片段用来分别统计ARRAY数组中奇数和偶数的个数。请在空白处填写合适的指令。 DATA SEGMENT ARRAY DW 23ABH,1570H,567,1765H,46,5210H COUNT EQU ($-ARRAY)/2 DA1 DB ? DA2 DB ? DATA ENDS LEA SI,ARRAY MOV CX,COUNTLOP1:MOV AX,SI TEXT AX,0001H JZ LOP2 I

14、NC BL JMP LOP3LOP2:INC BHLOP3:ADD SI,2 DEC CX JNZ LOP1 MOV DA1,BL MOV DA2,BH下列程序片段调用单个字符显示的2号功能显示STRING中的字符串COMPUTER(不显示字符$)。 (调用DOS的2号功能实现) STRING DBCOMPUTER,$设AX,BX中的数一个为正数,一个为负数,编写程序片段完成将正数送到PLW单元中存放 。编程实现:TESTAX,8000HJEK1或JZK1MOVPLW,BXJMPDONEK1:MOVPLW,AXDONE:习题5.3,5.231.从键盘输入一个以$为结束符的字符串,统计其中的非数

15、字字符个数。DSEG SEGMENTBUFF DB 50 DUP ( )COUNT DW 0DSEG ENDSBEGIN: LEA BX, BUFFMOV COUNT, 0INPUT: MOV AH, 01 ;INT 21HMOV BX, ALINC BXCMP AL, $ ;JNZ INPUT ;LEA BX, BUFF ;NEXT: MOV CL, BXINC BXCMP CL, $ ;JZ DISPCMP CL, 30H ;JB NEXTCMP CL, 39H ;JA NEXTINC COUNT ;JMP NEXTDISP: ;2. 试编写一程序段求出双字长数的绝对值。双字长数在A和A+

16、2单元中,结果存放在B和B+2单元中。MOV AX, AMOV DX, A+2CMP DX, 0JNS ZHENSHU ;不是负数则转走NEG DXNEG AXSBB DX, 0ZHENSHU: MOV B, AXMOV B+2, DXINT 20H3. 把0100之间的30个数存入以GRADE为首地址的30字数组中,GRADE+i表示学号为i+1的学生的成绩。另一个数组RANK为30个学生的名次表,其中RANK+i的内容是学号为i+1的学生的名次。编写一程序,根据GRADE中的学生成绩,将学生名次填入RANK数组中。(一个学生的名次等于成绩高于这个学生的人数加1。) DSEG SEGMENT

17、GRADE DW 30 DUP (?) ;RANK DW 30 DUP (?)DSEG ENDS;-CSEG SEGMENTMAIN PROC FARASSUME CS: CSEG, DS: DSEGSTART: PUSH DS ;SUB AX, AXPUSH AXMOV AX, DSEGMOV DS, AX ;BEGIN: MOV DI, 0MOV CX, 30 ;LOOP1: PUSH CXMOV CX, 30 ;MOV SI, 0MOV AX, GRADE DIMOV DX, 1 ;LOOP2: CMP GRADE SI, AX ;JBE GO_ONINC DX ;GO_ON: ADD

18、SI, 2LOOP LOOP2POP CXMOV RNAK DI, DX ;ADD DI, 2LOOP LOOP1RETMAIN ENDPCSEG ENDS ;-END STAR4.写出执行以下计算的指令序列,其中X、Y、W和Z均为存放16位带符号数单元的地址。Z(W-X)/5*Y)*2 MOV AX, WSUB AX, XCWDMOV BX, 5IDIV BXIMUL YSHL AX, 1 ;(DX),(AX)*2RCL DX, 15. 实现下列算式:W=X+Y+36-Z。设X、Y、Z、W均为双字长数据,各自的低十六位数和高十六位数分别存放在X、X+2、Y、Y+2、Z、Z+2的存储单元中,结

19、果的低十六位字和高十六位字分别存放在W和W2两个单元中。DATA SEGMENTX DD.Y DD.Z DD.W DD.DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AX,XADD AX,YMOV BX,X+2ADC BX,Y+2ADD AX,36ADC BX,0SUB AX,ZSBB BX,Z+2MOV W,AXMOV W+2,BXCODE ENDSENG START6. 试编制一源程序,统计DA1字单元中含0的个数,如统计的个数为奇数,则将进位位置1,否则进位位清0。DATA SEGMENTDA1 DW *DATA ENDSSTACK1 SEGMENT PARA STACKDB 10H DUP(0)STACK1 ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DH,0MOV AX,DA1MOV CX,16LOOP:SHL AX,1JC NEXT1INC DHNEXT1:LOOP LOPCLCTEST DH,1JZ END0STCEND0:MOV AH,4CHINT 21HCODE:END SEND START

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1