汇编语言和汇编程序

上传人:博****1 文档编号:571882220 上传时间:2024-08-12 格式:PDF 页数:10 大小:345.74KB
返回 下载 相关 举报
汇编语言和汇编程序_第1页
第1页 / 共10页
汇编语言和汇编程序_第2页
第2页 / 共10页
汇编语言和汇编程序_第3页
第3页 / 共10页
汇编语言和汇编程序_第4页
第4页 / 共10页
汇编语言和汇编程序_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《汇编语言和汇编程序》由会员分享,可在线阅读,更多相关《汇编语言和汇编程序(10页珍藏版)》请在金锄头文库上搜索。

1、欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!. - - -可修编- 汇编语言和汇编程序 一、 答复以下问题 1、 何谓汇编语言程序?何谓汇编程序?简述汇编程序的功能。 2、 什么叫做变量?变量有哪几种属性?程序中如何放问变量? 3、 什么叫做标号?标号有哪几种属性? 4、 8088 汇编语言中有哪几类运算符? 5、 什么叫做表达式?它的运算规那么是什么? 6、 8088/8086 汇编语言程序中段的类型有哪几种?段定义中定位类型、组合类型和类别名各有什么作用? 7、 设 VALA EQU 200 VALB EQU 30 VALC EQU 1BH

2、 以下表达式的值各为多少? 1 VALA*VALC+VALB/VALC 2 VALA MOD VALC-VALB/VALC 3 VALB AND 0FHOR VALB XOR 0FH 4 VALA GE VALB AND 0FH 8、 根据以下数据定义,各条指令单独运行后,AX 的内容是什么? TABLEA DW 10 DUP? TABLEB DB 10 DUP? TABLEC DB 1234 TABLED DW 1,2,3,4 (1) MOV AX,TYPE TABLEA (2) MOV AX,TYPE TABLEB (3) MOV AX,TYPE TABLEC (4) MOV AX,TYP

3、E TABLED (5) MOV AX,LENGTH TABLEA (6) MOV AX,LENGTH TABLEB (7) MOV AX,LENGTH TABLEC (8) MOV AX,LENGTH TABLED (9) MOV AX,SIZE TABLEA (10) MOV AX,SIZE TABLEB (11) MOV AX,SIZE TABLEC (12) MOV AX,SIZE TABLED 9、 执行以下指令后,AX 存放器的内容是什么? TABLE DW 0,100,200,300,400 DISTA DW 6 1MOV BX,OFFSET TABLE ADD BX,DISTA

4、 MOV AX,BX 2LEA BX,TABLE MOV AX,2BX (1) MOV SI,4 MOV BX,OFFSET TABLE MOV AX,BXSI (2) MOV BX,DISTA MOV AX,TABLEBX 10、 画图说明以下语句分配存储空间及初始化的数据值。 (1) BYTE-VAR DB BYTE ,12,12H,2 DUP 0,3 DUP2 (2) WORD-VAR DW 4 DUP0,1,2 ,-5, BY , TE 11、 定义一个数据段的字符变量和数据变量。 (1) TRING 为字符串变量: Personal puter (2) VALD 为十进制数字节变量

5、12,99 (3) VALH 为十六进制数字变量 32H,0FAH (4) VALZ 为 10 个零的字节变量 (5) VALW 为 20 个字单元 12、 根据数据段的定义,答出 L 值是多少?它表示什么意义? 1BUFA DB 0 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!. - - -可修编- BUFB DB 1 L EQU BUFB-BUFA 2STA DW 20 DUP? L EQU LENGTH STA 13、 定义一个数据段,要求如下: (1) 段界起始于字边界 (2) 该段与同名逻辑段相邻连接成一个物理段 (3) 类别号为DA

6、TA (4) 定义数据 12,30, ABCD (5) 保存 20 个字的存储区 二、填空题 1、假设DS=2000H, BX=1256H, SI=528FH;位移量 TABLE=20A1H, 232F7H0=3280H, 264E5H=2450H,那么 执行指令 JMP BX 后, IP=; 执行指令 JMP TABLEBX后, IP=; 执行指令 JMP BXSI后, IP=。 2、在 1000H 单元中有一条二字节指令 JMP SHORT LAB,如果其中偏移量分别为 30H、6CH、0B8H,那么转向地址 LAB 的值分别为; ; ; 3、数据段中有以下定义: ARRAY1 EQU 1

7、6H ARRAY2 DW 16H 请指出下面两条指令的寻址方式: MOV AX,ARRAY1; 寻址方式。 MOV AX,ARRAY2; 寻址方式。 4、下面两个语句的区别在于、 。 X1 EQU 1000H X2 =1000H 5、指令“AND AX,STR1 AND STR2中,STR1 和 STR2 是两个已赋值的变量,两个 AND 的区别是、 。 6、指令 LOOPZ/LOOPE 是结果或发生转移的指令。而指令 LOOPNZ/LOOPNE 那么是结果或发生转移的指令。 7、调用指令 CALL 可分为、 、和等四种调用。 8、在汇编语言中,一个过程有 NEAR 和 FAR 两种属性。NE

8、AR 属性说明主程序和子程序,FAR 属性表示主程序和子程序。 9、串处理指令规定源存放器使用,源串在段中;目的存放器使用,目的串必须在段中。 10、是过程定义完毕伪指令,与配套使用。是段定义完毕伪指令,与配套使用。 11、一个有 16 个字的数据区,它的起始地址为 70A0:DDF6H,那么该数据区的最后一个字单元的物理地址为 H。 12、对于下面的数据定义: A1 DW 20 DUP? A2 DB 20 DUP? A3 DB 987654321 MOV AX,LENGTH A1 MOV BX,LENGTH A2 MOV CX,LENGTH A3 各条指令执行后,相应存放器的内容为: AX=

9、, BX=, CX=。 13、在数据段定义有一字变量如下: DATA SEGMENT ARRAY DW 2,$+2,5,7,$+6,0DH DATA ENDS 填入数据段 ARRAY 区存储单元的内容。 14、执行以下指令后: TABLE DW 10,20,30,40,50 ENTRY DW 3 MOV BX,OFFSET TABLE ADD BX,ENTRY MOV AX,BX 存放器AX= 四、是非判断题 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!. - - -可修编- 1、 程序在数据段中的定义如下: DATA SEGMENT NAME

10、S DB ABCD NAMET DW 20 DATA ENDS 请判断以下指令是否正确?正确的填A ,错误的填B并说明原因 (1) MOV BX,OFFSET NAMES MOV AL,BX+2 (2) MOV AX,NAMES (3) MOV AX,WORD PTR NAMES+1 (4) MOV AL,NAMET (5) MOV AL,BYTE PTR NAMET (6) MOV AX,DATA MOV DS,AX (7) MOV AX,SEG NAMES (8) MOV BX,DATA MOV AL,BX+3 2、 下面各题中有无语法错误?假设无语法错误,请在括号中填A ,假设有语法错误

11、,请在括号中填B ,并按其意图修改题中的相应语句。 1M1 DB 1234 2M2 DW ABCD 3M3 DW 50H : : MOV AL,M3 4M4 EQU 10H : : MOV M4,AL 5M5 DB ? : : MOV BX,M5 MOV BX,1000H 汇编语言程序设计 一、完成以下练习 1、 设DS=0300H, CS=0200H, IP=0100H, BX=1000H,DISPLACE=2000H, 4000H=5000H, 6000H=8000H 确定无条件转换指令的段内转移地址 (1) JMP BX (2) JMP BX (3) JMP DISPLACEBX 2、

12、设 AX 和 BX 存放器中是有符号数,CX 和 DX 存放器中是无符号数,写出以下条件转移指令。 (1) CX 值高于或等于 DX 值,那么转移 HIEQU (2) AX 值大于 BX 值,那么转移 GREAT (3) CX 值为 0,那么转移 ZERO (4) AX 值小于或等于 BX 值,那么转移 SMAEQU (5) CX 值低于或等于 DX 值,那么转移 LOWEQU (6) AX 为负值,那么转移NEGAT (7) AX 为偶数,那么转移IMAGE 3、 写出以下串操作指令所替代的指令序列。 (1) REP MOVSB (2) REP LODSB (3) REP STOSB (4)

13、 REP SCASB 4、 指出以下指令序列中的错误。 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!. - - -可修编- (1) CMP AL,-3 JA INVALID : : INVALID: (2) START:MOV CX,3 SUB AL,10 LOOP START : : 3CRAY PROC PUSH AX ADD AX,BX RET CRAY ENDP (4)IN AL,PROT JPE NEXT : : NEXT: 5、 分析执行以下程序段完成什么功能? (1) BEGIN:IN AL,5FH TEST AL,80H JZ

14、NEGATIVE MOV AH,0 JMP STOP NEGATIVE:MOV AH,0FFH STOP: HLT (2) START:IN AL,20H MOV BL,AL IN AL,30H MOV CL,AL MOV AX,0 REPEAT:ADD AL,BL ADD AL,BL ADC AH,0 DEC CL JNZ REPEAT HLT 3ASK: MOV DX,0210H IN AL,DX TEST AL,48H JNZ ASK INC DX MOV AL,0FFH OUT DX,AL : : 二、编写以下程序 1、 数据段定义如下: DATA SEGMENT FIRST DB 9

15、0H,5FH,6EH,69H SECOND DB 4 DUP ? THIRD DB 4 DUP ? FORTH DB 4 DUP ?DATA ENDS (1) 编写程序,将 FIRST 开场的四个字节十六进制数左移两位,结果存放在 SECOND 开场的存储区中。 (2) 编写程序,将 FIRST 开场的四个字节十六进制数右移 4 位,结果存放在 THIRD 开场的存储区欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!. - - -可修编- 中。 (3) 编写程序, 求 FIRST 开场的四个字节十六进制数的补码, 结果存放在 FORTH 开场的存储

16、区中。 2、 在内存缓冲区 BCDBUF 中,存放 10 个字节压缩的 BCD 数,编写程序求这 10 个数的和,结果送 SUM缓冲占用两个字节 。 3、 编写程序计算 S=2+4+6+200。 4、 编写将 BUFFER 为开场的 100 个连续单元清零的程序。 5、 编写程序把 SOURCE 源数据区的 100 个数据,存放在 DEST 目的数据区。 6、 将 FIRST 单元开场的数据块传送到 SECOND 单元开场的存储区中,假设发现传送的数据为 0,那么完毕传送,分两种情况编写程序。 (1) 两个数据区不重迭。 (2) 两个数据区重迭。 7、 编写一个程序,比拟两个字符串是否相等。假

17、设两个字符串相等,那么在 RESULT 单元存放字符E ;否那么存放字符N 。 8、 编写一个程序,求有 20 个元素的两个数组之和,并把和数存于新数组SUM 中。 9、 FIRST 和 SECOND 均为长度 10 个字节的数组,编写程序将两个数组中的内容交换。 10、 一个字符串以$字符完毕,编写一个程序统计英文字母A 出现的频率不分大小写 。 三、填空 1、 程序段如下: DATA SEGMENT ORG 2000H TWO=2 NUM DB 3,4 WORDS DW 1011H,2022H CHAR1 DB 13 WORK DB 2 DUP? TEN EQU 10 CHAR2 5 DA

18、TA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA MAIN PROC FAR START: PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOV AL,TWO MOV WORK ,AL TWO=TWO-1 ADD AL,TWO MOV WORK+1,AL RET MWIN ENDP CODE ENDS END START 2、以下程序段运行后,A 单元的内容为。 DATA SEGMENT A DW 0 B DW 0 C DW 230,20,54 DATA ENDS CODE SEGMENT ASSUME C

19、S:CODE,DS:DATA START PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DATA 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!. - - -可修编- MOV DS,AX MOV BX,OFFSET C MOV AX,BX MOV B,AX MOV AX,2BX ADD AX,B MOV A,AX RET START ENDP CODE ENDS END START 3、分析以下程序段 ADD AX,BX JNO L1 JNC L2 SUB AX,BX JNC L3 JNO L4 JMP SH

20、ORT L5 如果 AX 和 BX 的内容给定如下: AX BX 1 147B 80DC 2 B568 54B7 3 42C8 608D 4 D023 9FD0 5 94B7 B568 该程序执行后,程序转向 1 ; 2 ; 3 ; 4 ; 5 。 4、在以下程序的括号中分别填入如下指令: (1) LOOP L20 (2) LOOPE L20 (3) LOOPNE L20 TITLE EXLOOP. CODE SEGMENT ASSUME CS:CODE,DS:CODE,SS:CODE ORG 100H BEGIN:MOV AX,01 MOV BX,02 MOV DX,03 MOV CX,04

21、 L20: INC AX ADD BX,AX SHR DX,1 RET CODE ENDS END BEGIN 在上述三种情况下,当程序执行完后, AX= 1 、 BX 2 、 CX= 3 、 DX= 4 。 5、假设 X 和 X+2 单元的内容为双精度数 P,Y 和 Y+2 单元的内容为双精度数 QX,Y为低位数 ,以下程序段使 2PQ 时, AX=2。请把程序填写完整。 MOV DX,X+2 MOV AX,X ADD AX,X ADC DX,X+2 CMP DX,Y+2 (1) L2 (2) L1 CMP AX,Y (3) L2 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删

22、除!我们将竭诚为您提供优质的文档!. - - -可修编- L1:MOV AX,1 JMP EXIT L2:MOV AX,2 EXIT:INT 21H 阅读下面的程序,在 1 的情况下,本段程序的执行结果是AH=0;在 2 的情况下,其结果为AH=0FFH。 IN AL,20H TEST AL,80H JZ A MOV AH,0 JMP B A: MOV AH,0FFH B: HLT 6、以下程序段是比拟 AX,BX,CX 中带符号数的大小,将最大擞 放在 AX 中。请将程序填充完整。 CMP AX,BX (1) NEXT XCHG AX,BX NEXT: 2 AX,CX JGE OUT (3)

23、 AX,CX OUT: 7、以下程序的功能是 1 ,结果存放在 2 中。 START: IN AL,20 MOV BL,AL IN AL,30H MOV CL,AL MOV AX,0 NEXT: ADD AL,BL ADC AH,0 DEC CL JNZ NEXT HLT 8、以下程序段的作用是。 STR1 DB 300 DUP? STR2 DB 100 DUP? MOV CX,100 MOV BX,200 MOV SI,0 NEXT:MOV AL,STR1BXSI MOV STR2DI,AL SIC SI INC DI LOOP NEXT 9、如果数据段中有一个如下图的字节型表 TAB,并且

24、有一个名为 DISP 的字节型内存变量区,请阅读如下指令,它完成的功能。DX 中高 4 位换成 ASCII 码顺序存入 DISP 中 MOV CX,4 MOV BX,OFFSET TAB MOV DI,OFFSET DISP HT:SHL DX,1 RCL AL,1 SHL DX,1 RCL AL,1 SHL DX,1 RCL AL,1 SHL DX,1 RCL AL,1 AND AL,0FH XLAT TAB 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!. - - -可修编- MOV DI,AL INC DI LOOP HT 四、选择题 1、

25、 对于以下程序段: AGAIN:MOV AL,SI MOV ES:DI,AL INC SI INC DI LOOP AGAIN 也可用指令完成同样的功能。 AREP MOVSB BREP LODSB CREP STOSB DREPE SCASB 2、执行以下程序,选择正确的结果: MOV SP,2000H MOV AX,0F0H MOV SI,1234H MOV DX,5678H PUSH SI POP DI SHL DX,1 TEST AX,DX PUSH DX HLT 1SP=; A2000H B1FFFH C2001H D1FFEH 2DH 内容所在存储器的偏移地址为; A1FFFH B

26、1FFEH C1FFDH D1FFCH 3DL 内容所在存储器的偏移地址为; A1FFFH B1FFEH C2000H D1FFCH 4 AX=; A0H B78H C0F0H D56H 5 DI=。 A1234H B5678H C2000H D00F0H 6 DX=; A5678H B0ACFH C2B3CH D0ABF0H 7标志位 ZF=。 A)0 B)1 C)不定 8标志位 ZF=。 A0 B1 C不定 3、以下程序执行后,请选择正确的结果: 10A3H:2000H XOR AL,AL 2002H MOV AX,CS 2004H MOV SS,AX 2006H MOV SP,2F00H

27、 2021H MOV DX,2021H 200CH PUSH DX 200DH CALL 2700H 2021H ADD CX,DX 2021H HLT 10A3H:2700H POP CX 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!. - - -可修编- RET 1 AX= A10A3H B2000H C2021H D2799H 2 SP= A2F02H B2F00H C2EFEH D2EFCH 3 DX= A2700H B2F00H C2021H D2021H 4 CX= A2700H B2F00H C2021H D4024H 5ZF=

28、A1 B0 C不定 D-1 4、下面是多字节加法程序,第一个数和是 8A0BH,第二个数是 D705H。 DATA SEGMENT FIRST DB 1 , 2 ,0H SECOND DB 3 , 4 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV CX, 5 MOV SI,0 6 NEXT: MOV AL,SECONDSI ADC FIRSTSI,AL INC SI LOOP NEXT MOV AL,0 ADC AL, 7 MOV FIRSTSI,AL MOV AH,4CH INT 2

29、1H CODE ENDS END START 请选择正确的答案填入空格中: 1A8AH B0BH CD7H D05H 2A8AH B0BH CD7H D05H 3A8AH B0BH CD7H D05H 4A8AH B0BH CD7H D05H 5A3 B2 C1 D4 6ACLC BCLD CSTC DCLI 7A1 B-1 C0 D0FFH 5、将 AL 中带符号数乘以 10 送 AL,正确的程序段是。 A) SAL AL,1 BADD AL,AL MOV BL,AL MOV BL,AL SAL AL,1 ADD AL,AL SAL AL,1 ADD AL,AL 欢迎您阅读并下载本文档,本文

30、档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!. - - -可修编- ADD AL,BL ADD AL,AL CMOV CL,4 DADD AL,AL MOV BX,AL ADD AL,AL SAL AL,CL ADD AL,AL ADD AL,BL ADD AL,AL 6、交换存放器 SI、DI 的内容,正确的程序段是。 APUSH SI BPUSH SI PUSH DI PUSH DI POP SI POP DI POP DI POP SI CMOV AX,SI MOV BX,SI MOV SI,DI MOV BX,DI MOV DI,AX XCHG BX,AX 7、完

31、成 41H 送2100H、42 送2101H的正确程序段是。 AMOV AL,41H BMOV SI,2100H MOV 2100H,AL MOV SI, A INC AL INC SI MOV 2100H,AL MOV AX, AB CMOV AX,4241H DMOV AX, AB MOV 2100H,AX MOV 2100H,AX 五、是非判断题 1、JMP SHORT NEXT 称为近转移。 2、段内转移要改变 IP、CS 的值。 3、条件转移指令只能使用于段内直接短转移。 4、REPE/REPZ 是相等/为零时重复操作,其退出条件是: CX=0 或 ZF=1。 5、假设 VAR1 和

32、 VAR2 是字变量,LAB 为程序中的一个标号。判断以下指令是否正确,如果错误,试找出以下指令的错误之处。 (1) ADD VAR1,VAR2 (2) SUB AL,VAR1 (3) JNZ VAR1 (4) JMP LABSI (5) JMP NEAR LAB 6、判断以下伪操作表达方式是否正确。如果错误,请改正以下伪操作表达方式中的错误。 (1) DATA_SEG SEG (2) STACK_SEG SEGMENT STACK (3) SEGMENT CODE (4) DATA_SEG SEGMENT DATA ENDS (5)MAIN PROC FAR END MAIN MAIN ENDP

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号