最新版汇编语言程序设计习题答案详解

上传人:wm****3 文档编号:42432298 上传时间:2018-06-02 格式:DOC 页数:29 大小:225.50KB
返回 下载 相关 举报
最新版汇编语言程序设计习题答案详解_第1页
第1页 / 共29页
最新版汇编语言程序设计习题答案详解_第2页
第2页 / 共29页
最新版汇编语言程序设计习题答案详解_第3页
第3页 / 共29页
最新版汇编语言程序设计习题答案详解_第4页
第4页 / 共29页
最新版汇编语言程序设计习题答案详解_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《最新版汇编语言程序设计习题答案详解》由会员分享,可在线阅读,更多相关《最新版汇编语言程序设计习题答案详解(29页珍藏版)》请在金锄头文库上搜索。

1、第 1 页 共 29 页新版汇编语言程序设计习题答案详解第一章 汇编语言基础知识汇编语言基础知识1.1、简述计算机系统的硬件组成及各部分作用 1.2、明确下列概念或符号: 主存和辅存,RAM 和 ROM,存储器地址和 I/O 端口,KB、MB、GB 和 TB 1.3、什么是汇编语言源程序、汇编程序、目标程序? 1.4、汇编语言与高级语言相比有什么优缺点? 1.5、将下列十六进制数转换为二进制和十进制表示 (1)FFH (2)0H (3)5EH (4)EFH (5)2EH (6)10H (7)1FH (8)ABH1.6、将下列十进制数转换为 BCD 码表示 (1)12 (2)24 (3)68 (

2、4)127 (5)128 (6)255 (7)1234 (8)24581.7、将下列 BCD 码转换为十进制数 (1)10010001 (2)10001001 (3)00110110 (4)10010000(5)00001000 (6)10010111 (7)10000001 (8)000000101.8、将下列十进制数分别用 8 位二进制数的原码、反码和补码表示 (1)0 (2)-127 (3)127 (4)-57 (5)126 (6)-126 (7)-128 (8)681.9、完成下列二进制数的运算 (1)10111001 (2)10111001 (3)10111001 (4)101110

3、001001 (5)1011 1011 (8)1011 10011001(6)1011 1001(7)1.10 数码 09、大写字母 AZ、小写字母 az 对应的 ASCII 码分别是多少?ASCII 码为 0dh、0ah 对应的是什么字符?1.11、计算机中有一个“01100001”编码,如果把它认为是无符号数,它是 10 进制什么数?如果认为它是 BCD 码,则表示什么数?又如果它是某个 ASCII 码,则代表哪个字符? 1.12、简述 Intel 80x86 系列微处理器在指令集方面的发展。 1.13、什么是 DOS 和 ROM-BIOS? 1.14、简述 PC 机最低 1MB 主存空间

4、的使用情况。 1.15、罗列 8086CPU 的 8 个 8 位和 16 位通用寄存器 ,并说明各自的作用。1.16、什么是标志,它有什么用途?状态标志和控制标志有什么区别?画出标志寄存器 FLAGS,说明各个标志的位置和含义。 1.17、举例说明 CF 和 OF 标志的差异。第 2 页 共 29 页溢出标志 OF 和进位标志 CF 是两个意义不同的标志 进位标志表示无符号数运算结果是否超出范围,运算结果仍然正确;溢出标志表示有符号数运算结果是否超出范围,运算结果已经不正确例 1:3AH + 7CHB6H 无符号数运算:58124182,范围内,无进位 有符号数运算: 58124182 ,范围

5、外,有溢出例 2:AAH + 7CH(1)26H 无符号数运算:170124294,范围外,有进位 有符号数运算:8612428 ,范围内,无溢出1.18、字和双字在存储器中如何存放,什么是“小端方式”?对字和双字存储单元,什么是它们的对齐地址?为什么要对齐地址? 1.19、什么是 8086 中的逻辑地址和物理地址?逻辑地址如何转换成物理地址?请将如下逻辑地址用物理地址表达: (1)FFFFh:0 (2)40h:17h (3)2000h:4500h (4)B821h:4567h 1.20、8086 有哪 4 种逻辑段,各种逻辑段分别是什么用途?(解答) 代码段(Code Segment)用来存

6、放程序的指令序列。处理器利用 CS : IP 取得下一条要执行的指令 堆栈段(Stack Segment)确定堆栈所在的主存区域。处理器利用 SS : SP 操作堆栈中的数据 数据段(Data Segment)存放当前运行程序所用的数据。处理器利用 DS : EA 存取数据段中的数据 附加段(Extra Segment)是附加的数据段,也用于数据的保存。处理器利用 ES : EA存取数据段中的数据第二章 8086 指令系统2.1 已知 DS 2000H、BX = 0100H、SI = 0002H,存储单元20100H 20103H依次存放 12 34 56 78H,21200H 21203H依

7、次存放 2A 4C B7 65H,说明下列每条指令执行完后 AX 寄存器的内容。 (1) mov ax,1200h ;AX1200h (2) mov ax,bx ; AX0100h (3) mov ax,1200h ; AX4C2Ah (4) mov ax,bx ; AX3412h (5) mov ax,bx+1100h ; AX4C2Ah (6) mov ax,bx+si ; AX7856h (7) mov ax,bxsi+1100h ; AX65B7h 2.2 指出下列指令的错误 (1) mov cx,dl 两操作数类型不匹配 第 3 页 共 29 页(2) mov ip,ax IP 指令

8、指针禁止用户访问 (3) mov es,1234h 立即数不允许传给段寄存器 (4) mov es,ds 段寄存器之间不允许传送 (5) mov al,300 两操作数类型不匹配 (6) mov sp,ax 目的操作数应为 BP (7) mov ax,bx+di 源操作数应为 BX+DI (8) mov 20h,ah 立即数不能作目的操作数 2.3 已知数字 0 9 对应的格雷码依次为:18H、34H、05H、06H、09H、0AH、0CH、11H、12H、14H,它存在于以 table 为首地址(设为 200H)的连续区域中。请为如下程序段的每条指令加上注释,说明每条指令的功能和执行结果。l

9、ea bx,table ;获取 table 的首地址,BX200H mov al,8 ;传送欲转换的数字,AL8 xlat ;转换为格雷码,AL12H 2.4 什么是堆栈,它的工作原则是什么,它的基本操作有哪两个,对应哪两种指令?堆栈是一种按“先进后出”原则存取数据的存储区域。 堆栈的两种基本操作是压栈和出栈,对应的指令是 PUSH 和 POP。 2.5 已知 SS = FFA0H、SP = 00B0H,画图说明执行下面指令序列时,堆栈区和 SP 的内容如何变化? mov ax,8057h push ax mov ax,0f79h push ax pop bx ;bx=0f79h pop bx

10、 ;DS:0f79h=8057h 2.6 给出下列各条指令执行后 AL 值,以及 CF、ZF、SF、OF 和 PF 的状态:第 4 页 共 29 页mov al,89h AL=89h CF ZF SF OF PF add al,al AL=12h 1 0 0 1 1 add al,9dh AL=0afh 0 0 1 0 1 cmp al,0bch AL=0afh 1 0 1 0 1 sub al,al AL=00h 0 1 0 0 1 dec al AL=0ffh 0 0 1 0 1 inc al AL=00h 0 1 0 0 1 2.7 设 X、Y、Z 均为双字数据,分别存放在地址为 X、X

11、+2;Y、Y+2;Z、Z+2 的存储单元中,它们的运算结果存入 W 单元。阅读如下程序段,给出运算公式。 mov ax,X mov dx,X+2 add ax,Y adc dx,Y+2 add ax,24 adc dx,0 sub ax,Z sbb dx,Z+2 mov W,ax mov W+2,dxW=X+Y+24-ZW=X+Y+24-Z 2.8 请分别用一条汇编语言指令完成如下功能: (1)把 BX 寄存器和 DX 寄存器的内容相加,结果存入 DX 寄存器。 ADD DX,BX (2)用寄存器 BX 和 SI 的基址变址寻址方式把存储器的一个字节与 AL 寄存器的内容相加,并把结果送到 A

12、L 中。 ADD AL,BX+SI (3)用 BX 和位移量 0B2H 的寄存器相对寻址方式把存储器中的一个字和 CX 寄存器的内容相加,并把结果送回存储器中。 ADD BX+0B2H,CX(4)用位移量为 0520H 的直接寻址方式把存储器中的一个字与数 3412H 相加,并把结果送回该存储单元中。 ADD WORD PTR 0520H,3412H(5)把数 0A0H 与 AL 寄存器的内容相加,并把结果送回 AL 中。ADD AL,0A0H 2.9;设 X、Y、Z、V 均为 16 位带符号数,分别装在 X、Y、Z、V 存储单元中,阅读如下程序段,得出它的运算公式,并说明运算结果存于何处。为

13、了避免与操作数地址混淆,将题中 X,Y,Z,V 字操作数改为 A,B,C,D mov ax,X ;ax=A imul Y ;dx,ax = A*B (将操作数看作符号数,以下同) 第 5 页 共 29 页mov cx,ax mov bx,dx ;bx,ax DI,转到 above 执行 cmp dx,di ja above ;jnbe above (2)若 AX SI,转到 greater 执行 cmp ax,si jg greater ;jnle greater (3)若 CX = 0,转到 zero 执行 cmp cx,0 jcxz zero jz zero (4)若 AXSI 产生溢出,

14、转到 overflow 执行; cmp ax,di jo overflow (5)若 SIAX,转到 less_eq 执行; cmp si,ax cmp ax,si jle less_eq jge less_eq (6)若 DIDX,转到 below_eq 执行。 cmp di,dx cmp dx,di 第 10 页 共 29 页jbe below_eq jae below_eq 2.25 有一个首地址为 array 的 20 个字的数组,说明下列程序段的功能。 mov cx,20 mov ax,0 mov si,ax sum_loop: add ax,arraysi add si,2 loo

15、p sum_loop mov total,ax; 答:将首地址为 array 得 20 个字的数组求和,并将结果存入 total 单元中。 2.26 按照下列要求,编写相应的程序段: (1) 起始地址为 string 的主存单元中存放有一个字符串(长度大于 6) ,把该字符串中的第 1 个和第 6 个字符(字节量)传送给 DX 寄存器。mov si,0 mov dl,stringsi ;第 1 个字符送 dl 寄存器 mov si,5 mov dh,stringsi ;第 6 个字符送 dh 寄存器 (2) 从主存 buffer 开始的 4 个字节中保存了 4 个非压缩 BCD 码,现按低(高)地址对低(高)位的原则,将它们合并到 DX 中。xor si,si ;si 清零 mov al,buffersi ;第一字节 inc si m

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

最新文档


当前位置:首页 > 生活休闲 > 社会民生

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