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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

湖工大学计通学院期末考试汇编语言历届考试重点提示Word格式.docx

1、 4.设计一个延时子程序DELAY。DELAY PROC PUSH CX PUSH DI PUSHF MOV CX, 6000HAB0: MOV DI, 5000HAB1: DEC DI JNZ AB1 LOOP AB0 POPF POP DI POP CX RET DELAY ENDP (延时:5000H*6000H) 5.已知某外设端口A地址为288H,端口B为28AH,编程以A端口输入数据再从B端口输出,程序一直运行,按任意键退出。CODE SEGMENTASSUME CS: CODESTART: MOV DX, 288H IN AL, DX MOV DX, 28AH OUT DX, A

2、L MOV AH, 01H INT 16H JE START MOV AH, 4CH INT 21HCODE ENDSEND START一. 实验实验二1.用汇编语言编写一个计算“3+5”的加法程序,执行后显示计算结果。 code segmentassume cs:codestart: mov al,33hmov dl,35hadd dl,alsub dl,30hmov ah,02hint 21hmov ah,4chcode endsend start2.用汇编语言编写一个求AX与BX寄存器中两个无符号数之差的绝对值,将结果放在DX中。(文件名用自己的名字扩展名为.ASM) code segm

3、ent cmp ax,bxjc delaysub ax,bxmov dx,ax hlt delay: sub bx,ax mov dx,bx实验三1.编写一个加法程序,完成“1325+9839”要求用ASCII码形式将加数与被加数存放在数据区DATA1和DATA2中,并将相加的结果显示出来。DATA SEGMENTDATA1 DB 5, 2, 3, 1 DATA2 DB 9, 3, 8, 9, 0DATA ENDSSTACK SEGMENT PARA STACK STACK DB 64 DUP(?)STACK ENDS ASSUME CS:CODE, DS: DATA, SS:STACK,ES

4、:DATA START PROC FARPUSH DSMOV AX, 00HPUSH AXMOV AX, DATAMOV DS, AXMOV ES, AX ;初始化程序CLD ;DF为0,为正向串MOV SI, OFFSET DATA1 ;取数据1352所在存储单元的偏移地址 MOV DI, OFFSET DATA2 ;取数据9839所在存储单元的偏移地址MOV CX, 04H ;计算次数CXMOV AX, 00H ;将暂存标志寄存器的内容的AH寄存器清“0”LOP1:LODS DATA1 ;取串操作,SI AL,SI+1 SISAHF ;AH中的内容送标志寄存器ADC AL,DI ;将操作数

5、带进位做加法AAA ;ASCII码运算的十进制加法调整LAHF ;将标志寄存器的内容暂存在AH寄存器OR AL, 30H ;计算值拼成ASCII码ALSTOSB ;存串操作,ALDI,DI+1DILOOP LOP1 ;循环结束否?未结束转到LOP1AND AH, 01H ;结束将最高位的进位标志AHOR AH, 30H ;将最高位的进位拼成ASCII码MOV DI, AH ;并送到DATA2的最后一个字节中MOV AH, 02H ;调用DOS中断的02h功能MOV CX,05H ;显示数据位CXLOP2: MOV DL, DI ;将要显示数据送DL中INT 21H ;调用DOS的21H号中断

6、DEC DI ;显示数据所在存储单元地址减“1”LOOP LOP2 ;显示完否?未显示完转到LOP2RET ;显示完返回DOS状态实验四1.分类统计字数组ARRAY中正数、负数和零的个数,并分别存入内存字变量POST、NEGA和ZERO中,数组元素个数保存在数组的第一个字中。ARRAY DW 8 ; 元素个数 DW 230, -1437, 26, -31, 0, 3458, 0, 10POST DW 0 NEGA DW 0 ZERO DW 0 DATA ENDS CODE SEGMENT CODE, DS:DATA MOV AX, DATA MOV DS, AX XOR AX, AX ; 用A

7、X作为正数的计数器 XOR BX, BX ; 用BX作为负数的计数器 XOR DX, DX ; 用DX作为零的计数器 MOV CX, ARRAY ; 用CX来进行循环计数 JCXZ DONE ; 考虑数组的元素个数为0的情况 LEA DI, ARRAY+2; ; 用指针DI来访问整个数组AGAIN: CMP WORD PTRDI, 0 ; 与0做比较 JG HIGH ; 大于0,为正数 JE EQUAL ; 等于0 INC BX ; 小于0,为负数,负数个数增1 JMP NEXTHIGH: INC AX ; 正数个数增1EQUAL: INC DX ; 0的个数增1NEXT: INC DI LO

8、OP AGAIN DONE: MOV POST, AX ; 把各类的统计数保存到内存单元中 MOV NEGA, BX MOV ZERO, DX MOV AX, 4C00H ; 结束程序返回DOS INT 21H END START 实验五1.设计编写一个程序,要求执行时显示DO you love me?Y/N输入y(ASCII=79H)就停止执行,返回DOS状态,按其它键则重复显示 Y/N。data segmentbuf db Do you love me?,0ah,0dh,$data endscode segmentcode,ds:datamov ax,datamov ds,axmov dx

9、,offset bufmov ah,9mov ah,1cmp al,yje exitYmov dl,0ahmov ah,2mov dl,0dhjmp startexit: 实验六1. 设计编写一个程序,从键盘上输入一串字符,计算每个字符出现的次数,并在屏幕上显示这个数字。BUFFER DB 100DB ?DB 100 DUP(?CHARS DB INPUT:CODE,DS:MAIN PROC FAR PUSH DS SUB AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOV DX,OFFSET CHARS MOV AH,9 MOV DX,OFFSET BUFFER

10、MOV AH,0AH MOV DL,0AH MOV AH,2 MOV DL,0DH MOV SI,OFFSET BUFFER INC SI MOV AL,SI MOV DL,SI MOV DH,SI MOV DI,SI MOV CL,AL MOV CH,0 MOV BL,1 MOV BH,0 DEC CLGO1: CMP DL,SI JNE TO1 INC BLTO1: LOOP GO1 CALL OUTPUTTO5: DEC AL CMP AL,1 JE TO3 CMP DH,DI JE TO5 MOV DL,DI MOV SI,DIGO2: CMP SI,DL JNE TO2 MOV SI

11、,DHTO2: LOOP GO2 JMP TO5TO3: JE TO4TO4: RETMAIN ENDP OUTPUT PROC PUSH CX PUSHF MOV DL,20H MOV AL,BL MOV AH,0 MOV CL,10 DIV CL ADD AH,30H ADD AL,30H MOV CH,AH MOV DL,AL MOV DL,CH POPF POP CX POP AXOUTPUT ENDP END MAIN 实验七1.设计编写一个程序,要求键盘输入单字符,但不显示,而是将该单字符的ASCII码加1后再显示出来(即输入A显示B,输入B则显示C),程序一直运行,按ESC键则退

12、出。mov ah,8cmp al,1Bhadd al,1mov dl,almov ah,2hmov ah,4Ch二. 平时听课1.8086为16位微处理器,数据总线16位,地址总线20位。2.系统复位后,CPU从FFFF0H地址开始重新执行程序。3.使AX清零:MOV AX,0;SUB AX,AX;XOR AX,AX。4.设DS=1000H,12000H=67H,12001H=45H;MOV AX,2000H则AX=4567H。5.用两条指令完成将标志的低8位中ZF(D6),CF(D0),设置为1,其他位变为0:AH:01_0_0_1则AH可为01000001=41H;所以:MOV AH,41

13、HSAHF6.比较DI,SI,如DISI顺序向下执行。CMP DI,SIJC delayJZ AD1. delay: HLT AD1: 7.MOV AX, 8889H SAR AX, 1 则AX=C444H,CF=1; MOV BX, 56H RCL BX, 1 则BX=00ADH,CF=0。 8.设32位数在DX:AX中,实现32位数整个左移1位: SAL AX,1 RCL DX,1 9.用五条指令完成将当前数据段中3000H3100H单元的内容,对应的传送到当前附加段5000H5100H单元中去:CLDMOV CX, 101HMOV SI, 3000HMOV DI,5000HREP MOV

14、SB 10.将附加段中4000H5000H单元的内容全部清零: CLD MOV CX, 1001H MOV DI, 4000H MOV AL, 0H REP STOSB 或 STD11.设源串在1000H:2000H开始的100个字节单元中,要求将源串送到3000H:1020H开始的目的串中:MOV AX, 1000HMOV SI, 2000HMOV AX, 3000HMOV ES, AXMOV DI, 1020HMOV CX, 64H 12.比较两个串,发现有不同的字符时则停止比较:MOV CX, 100MOV SI, 2500HMOV DI,1400HREPE CMPSB13.按ESC键退

15、出:CMP AL,1BH JE EXIT . EXIT: MOV AH,4CH INT 21H 14.按任意键退出:MOV AH, 1H JNE EXIT MOV AH, 4CH INT 21H三. CPU各标志的含义标志 1 0溢出标志 OF OV NV 溢出 非溢出方向标志 DF DN UP 递减 递增中断允许 IF EI DI 允许 不允许符号标志 SF NG PL 负的 正的零标志 ZF ZR NZ 零 非零辅助进位 AF AC NA 有进位 无进位奇偶校检 PF PE PO 偶数个 计数个进位标志 CF CY NC 有进位 无进位四. 伪指令segment,assume,end,DB

16、,DW,proc,PTR操作符1. 段定义:段名segment段名ends2. 段分配:assume 段寄存器:段名,段寄存器:段名,3. 程序结束:end 标号4. 变量定义:变量名DB/DW 表达式 或 n DUP (操作数)5. 过程定义:过程名 proc 属性 过程名 endp6. PTR运算符(可用来修改变量或标号的类型属性):类型 PTR 表达式五. 8086CPU的内部结构组成及各寄存器的用法1. 内部结构:执行单元EU和总线接口部件BIU2. 段寄存器用法:A. 通用数据寄存器:AX,BX,CX,DX;AX作为累加器,BX作为基址寄存器,CX作为计数寄存器,DX作为数据寄存器B

17、. 指针及变址寄存器:SP,BP,SI,DI;通常用来存放存储器单元的16位偏移地址;SP用来指示堆栈顶的偏移地址,称为堆栈指针;BP用来存放堆栈中的一个数据区的“基址”的偏移量,称为基址指针;SI,DI称为变址寄存器,用来存放当前数据所在存储单元的偏移地址,在串操作指令中,SI用来存放源操作数地址的偏移量,称为源变址寄存器,DI用来存放目标操作数地址的偏移量,称为目标变址寄存器。C. 段寄存器:CS,DS,SS,ESD. 指令指针:IP:IP的内容总是指向BIU将要取的下一条指令代码的16位偏移地址E. 标志寄存器:FR:16位只是用9位;其中6位为状态标志位,用来反映算术运算或逻辑运算结果

18、的状态;3位控制位,用来控制CPU的操作。六. 8086CPU的读写操作的理解七. Debug命令D命令功能:显示数据段中指定单元或单元块的内容。E命令修改内存单元内容命令A进行程序段汇编命令U从代码段中指定的位置对机器代码进行反汇编,得到相应的助记符形式的指令。命令RRR命令就用来显示所有寄存器内容,包括标志寄存器中的8个状态标志位的状态,并在最后提示下一条将要执行的指令。RAXR后面跟上一个寄存器的名称,这时R命令就用来显示这个寄存器的内容并等待修改。RF功能是显示和修改标志位状态。命令G运行程序命令T单步执行程序八. 逻辑地址与物理地址理解与计算1. 逻辑地址:由段基址和偏移地址两部分构

19、成,它们的是无符号16位二进制数;逻辑地址是用户进行程序设计师采用的地址2. 物理地址:CPU访问内存是使用的地址:物理地址=段基址*16+偏移地址九. 数值转换1._H=_D _D=_H _H=_B _D=_B一十. 负数的补码表示的计算1.-B=B的反码+1一十一. 各段寄存器的理解和用途1. CS:代码段寄存器,用来存放当前使用的代码的段基址2. DS:数据寄存器,用来存放当前使用的数据段的段基址3. ES:附加段寄存器,用来存放当前使用的附加段的段基址4. SS:堆栈段寄存器,用来存放当期使用的堆栈段的段基址一十二. 堆栈及操作过1. 先进后出2. 入栈PUSH AXPUSH BXPU

20、SH CXPUSHF 出栈POPF POP BX POP AX一十三. 用一条逻辑指令将寄存器其他位清零,置1,取反1. 清零:AND d,02. 置1:OR d,13. 取反:XOR d,1一十四. 指令的组成1. 标号: 前缀 助记符 操作数 ;注释 共四部分组成一十五. DOS系统功能调用1. 1号功能:键盘输入并显示MOV AH,01HINT 21H2. 2号功能:屏幕显示一个字符MOV DL,字符MOV AH,02H3. 8号功能:键盘输入但不显示输入字符MOV AH,08H4. 9号功能:屏幕显示字符串MOV DX,字符串的偏移地址MOV AH,09H5. 4CH功能:返回DOS操

21、作系统MOV AH,4CH一十六. BIOS调用1. 按任意键退出: MOV AH,01HINT 16HJNE EXIT. EXIT: MOV AH,4CH INT 21H 一十七. 奇存储体,偶寄存体1. 最后一位为奇则为奇存储体,偶则为偶存储体一十八. 子程序定义1. 定义:过程名 PROC 属性(NEAR,FAR) RET过程名 ENDP2. 调用:CALL 过程名一十九. 编程二十. 程序分析二十一. I/O指令应用1. IN:输入指令:IN 累加器AX或AL,端口地址IN AL,08H或 MOV DX,2000H IN AX,DX2. OUT:输出指令:OUT 端口地址,累加器OUT 50H,AX或 MOV AL

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

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