钱晓捷汇编语⾔程序设计课后习题(作业新)
习题1 (1)
习题2 (4)
习题3 (10)
习题4 (13)
习题5 (15)
习题6 (18)
习题7 (21)
习题8 (24)
习题9 (27)
1.1 简述计算机系统的硬件组成及各部分作⽤。
字符串长度大于5
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)ABH
1.6 将下列⼗进制数转换为BCD码表⽰。
(1)12 (2)24 (3)68 (4)127
(5)128 (6)255 (7)1234 (8)2458
解答:
⼗进制数 BCD码
1200010010
2400100100
6801101000
127000100100111
128000*********
255001001010101
12340001001000110100
2458 0010010001011000
1.7 将下列BCD码转换为⼗进制数。
(1)10010001 (2)10001001 (3)00110110 (4)10010000
(5)00001000 (6)10010111 (7)10000001 (8)00000010
解答:
BCD码⼗进制数
10010001 91
10001001 89
00110110 36
10010000 90
00001000 08
10010111 97
10000001 81
00000010 02
1.8 将下列⼗进制数分别⽤⼋位⼆进制数的原码、反码和补码表⽰。
(1)0 (2)-127 (3)127 (4)-57 (5)126 (6)-126 (7)-128
(8)68
1.9 完成下列⼆进制数的计算。
(1)1011+1001 (2)1011-1001 (3)1011×1001 (4)10111000/1001
(5)1011∧1001 (6)1011∨1001 (7)~1011 (8)1011⊕1001
1.10 数码0~9,⼤写字母A~Z,⼩写字母a~z,对应的ASCII码分别是多
少?ASCII码为0dH,0aH对应的是什么字符?
解答:
⼤写字母A~Z,对应的ASCII码分别是41H~5AH
⼩写字母a~z,对应的ASCII码分别是61H~7AH
ASCII码为0dH,0aH分别对应“回车”、“换⾏”
1.11 计算机中有⼀个“01100001”编码,如果把它认为是⽆符号数,它是⼗进制什么数?如果你认为它是BCD码,则表⽰什么数?如果它是某个ASCII码,则代表哪个字符?
1.12 简述Intel80x86系列微处理器在指令集⽅⾯的发展。
1.13 什么是DOS和ROM-BIOS?
1.14 简述PC最低1MB贮存空间的使⽤情况。
1.15 罗列8086CPU的8个8位和16位通⽤寄存器,并说明各⾃的作⽤。
1.16 什么是标志?它有什么⽤途?状态标志和控制标志有什么区别?画出标志寄存器FLAGS,说明各个标志的位置和含义。
1.17 举例说明CF和OF标志的差异。
解答:溢出标志OF和进位标志CF是两个意义不同的标志
进位标志表⽰⽆符号数运算结果是否超出范围,运算结果仍然正确;溢出标志表⽰有符号数运算结果是否超出范围,运算结果已经不正确
例1:3AH + 7CH=B6H
⽆符号数运算:58+124=182,范围内,⽆进位
有符号数运算: 58+124=182 ,范围外,有溢出
例2:AAH + 7CH=(1)26H
⽆符号数运算:170+124=294,范围外,有进位
有符号数运算:-86+124=28 ,范围内,⽆溢出
1.18 字和双字在存储器中如何存放,什么是“⼩端⽅式”?对字和双字存储单元,什么是它们的对齐地址?为什么要对齐地址?
1.19 什么是8086中的逻辑地址和物理地址?逻辑地址如何转换为物理地址?请将如下逻辑地址⽤物理地址表⽰(表达地址默认采⽤⼗六进制):(1)FFFF:0 (2)40:17 (3)2000:4500 (4)B821:4567
解答:对应每个物理存储单元都有⼀个唯⼀的20位编号,就是物理地址,从00000H~FFFFFH
在8086内部和⽤户编程时,采⽤的段基地址 : 段内偏移地址形式称为逻辑地址
将逻辑地址中的段地址左移4位,加上偏移地址就得到20位物理地址
请将如下逻辑地址⽤物理地址表达:
(1)FFFFh:0=FFFF0H
(2)40h:17h=00417H
(3)2000h:4500h=24500H
(4)B821h:4567h=BC777H
1.20 8086有哪4种逻辑段?各种逻辑段分别是什么⽤途?
解答:代码段(Code Segment)⽤来存放程序的指令序列。处理器利⽤CS : IP 取得下⼀条要执⾏的指令
堆栈段(Stack Segment)确定堆栈所在的主存区域。处理器利⽤SS : SP操作
堆栈中的数据
数据段(Data Segment)存放当前运⾏程序所⽤的数据。处理器利⽤DS : EA
存取数据段中的数据
附加段(Extra Segment)是附加的数据段,也⽤于数据的保存。处理器利⽤ES : EA存取数据段中的数据
1.21 数据的默认段是哪个?是否允许其他段存放数据?如果允许,如何实现?有什么要求?
1.22 什么是操作码、操作数和寻址⽅式?有哪三种给出操作数的⽅法?
1.23 什么是有效地址EA?8086的操作数如果在主存中,有哪些寻址⽅式可以存取它?
1.24 说明下列指令中源操作数的寻址⽅式?如果BX=2000H,DI=40H,给出DX 的值或有效地址EA的值。
(1)Mov dx,[1234h]
(2)Mov dx,1234h
(3)Mov dx,bx
(4)Mov dx,[bx]
(5)Mov dx,[bx+1234h]
(6)Mov dx,[bx+di]
(7)Mov dx,[bx+di+1234h]
解答:(1)mov dx,[1234h] ;直接寻址,EA=1234h
(2)mov dx,1234h ;⽴即数寻址,DX=1234h
(3)mov dx,bx ;寄存器寻址,DX=2000h
(4)mov dx,[bx] ;间接寻址,EA=2000h
(5)mov dx,[bx+1234h] ;相对寻址,EA=3234h
(6)mov dx,[bx+di]
;基址变址寻址,EA=2040h
(7)mov dx,[bx+di+1234h]
;
相对基址变址寻址,EA=3274h
习题2
2.1 已知DS=2000H,BX=0100H,SI=0002H,存储单元[20100H]~[20103]依次存放12 34 56 78H,[21200H]~[21203H]依次存放2A 4C B7 65H,说明下列每条指令执⾏后AX寄存器的内容。
(1)Mov ax,1200h
(2)Mov ax,bx
(3)Mov ax,[1200h]
(4)Mov ax,[bx]
(5)Mov ax,[bx+1100h]
(6)Mov ax,[bx+si]
(7)Mov ax,[bx][si+1100h]
解答:(1)mov ax,1200h ;AX=1200h
(2)mov ax,bx ;AX=0100h
(3)mov ax,[1200h] ;AX=4C2Ah
(4)mov ax,[bx] ;AX=3412h
(5)mov ax,[bx+1100h] ;AX=4C2Ah
(6)mov ax,[bx+si] ;AX=7856h
(7)mov ax,[bx][si+1100h] ;AX=65B7h
2.2 指出下列指令的错误
(1)mov cx,dl (2)mov ip,ax
(3)mov es,1234h (4)mov es,ds
(5)mov al,300 (6)mov [sp],ax
(7)mov ax,bx+di (8)mov 20h,ah
2.3 已知数字0~9对应的格雷码依次为:
18H,34H,05H,06H,09H,0AH,0CH,11H,12H,14H,它存在于以table为⾸地址(设为200H)的连续区域中。为如下程序段的每条指令加上注释,说明每条指令的功能和执⾏结果。
Lea bx,table
Mov al,8
Xlat
2.4 什么是堆栈?他的⼯作原则是什么?它的基本操作有哪两个?对应哪两种指令?
2.5 已知SS=2200H,SP=00B0H,画图说明执⾏下列指令序列时,堆栈区和SP的内容如何变化?
Mov ax,8057h
Push ax
Mov ax,0f79h
Push ax
Pop bx
Pop [bx]
解答:mov ax,8057h
push ax
mov ax,0f79h
push ax
pop bx ;bx=0f79h
pop [bx]
;DS:[0f79h]=8057h
2.6 给出下列各条指令执⾏后AL的值,以及CF,ZF,SF,OF,PF的状态:
Mov al,89h
Add al,al
Add al,9dh
Cmp al,0bch
Sub al,al
Dec al
Inc al
解答:
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+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
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论