汇编复习题

发布 2021-05-18 23:51:28 阅读 4574

1、汇编语言的特点?

答:① 执行速度快;② 程序短小;③ 可以直接控制硬件;④ 可以方便的编译;⑤ 辅助计算机工作者掌握计算机体系;⑥ 程序编制耗时,可读性差;⑦ 程序可移植性差。

2、二、八、十、十六进制数之间的转换?

3、有无符号数、原码、反码、补码的概念?补码的加减法运算规则?

cpu的两大逻辑部件?各自的功能?

答:① 总线接口部件 biu ;②执行部件 eu 。biu 是8086与系统总线的接口,负责cpu与存储器、i/o端口传送数据。eu负责指令的执行和数据的运算。

/8086cpu内部寄存器有 14 个 ,其中的 ax、bx、cx、dx 是数据寄存器,sp、bp 是指针寄存器,si、di 是变址寄存器,cs、ds、ss、es 是段寄存器,此外还有指令指针寄存器 ip 和标志位寄存器 flag,所有寄存器都是 16 位寄存器,其中 ax、bx、cx、dx 可以分为高低字节独立使用。

/8086cpu的标志位寄存器中有 9 个标志位,其中的tf、if、df是控制标志,cf、pf、af、zf、sf、of是状态标志。各个状态标志在什么情况下被置为1?cf:

产生进位或借位;pf:运算结果低字节中“1”为偶数个;af:执行加法指令第3位有进位;zf:

运算结果为零;sf:运算结果的最高位;of:运算结果溢出。

/8086cpu有三组总线,它们是数据总线 、 地址总线和控制总线;地址总线是 20 条,因此它可以寻址的范围是 220 字节。通常将 210 字节称为1k,将 220 字节称为1m。

/8086cpu的存储器采用分段方式管理,每个段最多可以有 216 字节,全部存储空间可以分成 16个大小为64k且互相不重叠的段。

9、采用分段方式管理的存储单元的地址分成逻辑地址和物理地址地址两种,逻辑地址由段地址和偏移地址两部分构成,段地址是每个存储器段的首地址;偏移地址则是相对于每个段第一个存储单元的偏移量。物理地址和逻辑地址间的关系是。

物理地址=段地址×10h+偏移地址 。

10、存储器中,数据是以字节为单位存取的,它是一个 8 位二进制数,16位二进制数是双字节 ,又称为字 ;每个存储单元可以存放一个字节;一个字则占用 2个存储单元,存放时要将低字节放在地址较小的存储单元中。

11计算机的指令由操作码和操作数构成,它们分别给出计算机要执行的操作和操作的对象。

12、指令的操作数通常可以存放在指令中,也可以存放在cpu的寄存器中,大多数存放在存储器中,它们分别称为立即数、寄存器操作数和存储器操作数。立即数存放在**段中,紧跟在操作码后。表示操作数存放的方式称为寻址 。

8088/8086cpu的寻址方式有立即寻址、寄存器寻址和存储器寻址三类,第三类寻址方式又分成直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址和相对基址变址寻址几种。

13、汇编语言的语句分成指令语句 、伪指令语句和宏指令语句三类。

14、指令语句在汇编时被翻译成机器指令,伪指示语句则在汇编时由编译程序执行,而不被翻译成机器语言指令。

15、汇编程序中的名字项可以分为变量名和标号 ,它们都有段、偏移地址和类型三种属性。

16、数据定义伪指令的功能是定义变量,通常使用的数据定义伪指令是 db、dw。

17符号定义伪指令equ的功能是定义符号,通常用它定义常数。equ定义的符号占 0个存储单元。

18、“equ”与“=”这两个伪指令的区别是?

答:equ定义的不可重新定义,等号定义的行。

19、汇编语言程序上机操作的步骤是编写源程序、汇编源程序、连接源程序、调试源程序。

20、汇编语言源程序的扩展名是 .asm ,目标程序的扩展名是 .obj ,可执行程序的扩展名是 .exe 。

21、push和pop指令的操作数必须是 16 位的。前者会将sp 减 2。

22、按照下列指令中操作数的寻址方式在括号中填入适当的字母: 源操作数目的操作数。

a、mov ax,1200h (a.立即寻址;) b.寄存器寻址;)

b、cmp word prt[si],120h (a.立即寻址;) d.寄存器间接寻址)

c、add ax,14[bx](e.寄存器相对寻址) (b.寄存器寻址;)

d、sub [bx+di],cx (b.寄存器寻址;) f.基址变址寻址)

e、and bx,buf (c.直接寻址;) b.寄存器寻址;)

f、lea di,[si] (d.寄存器间接寻址) (b.寄存器寻址;)

g、xor [bx+si+3],dx (b.寄存器寻址;) g.相对基址变址寻址。)

23、某存储单元的地址为3a80:13ebh,其中的3a80是段地址,13eb是偏移地址;该存储单元的物理地址是 3bbeb h。

24、十进制数-100的8位二进制数的补码为( c )。

a、11100100 b、01100100 c、10011100 d、11001110

25、下列是8位二进制数的补码,其中真值最大的是( d )。

a、10001000 b、11111111 c、00000000 d、00000001

位有符号数的补码所表示的十进制数的范围是( b )。

a、-32767~+32768 b、-32768~+32767 c、-65535~+65536 d、0~65535

27、以下指令中,执行后al中的数据不变的是( b、d、e、f )。

a、and al,cl b、or al,al c、xor al,al d、cmp al,al

e、add al,0 f、and al,0ffh g、xor al,0ffh h、or al,0ffh

28、写出指令mul和div的指令格式,并简述各自的操作数和结果存放在**?

答:8位al,16位ax相乘。al→ax,ax→dx ax 除与乘相反。

29、执行指令call subb时,所要保护的断点在 ip 寄存器中,而执行指令call far ptr subb时,所要保护的断点在 cs 和 ip 寄存器中。

30、i/o接口中含有哪几种端口,分别做什么用?

答:状态、控制、状态分别存放相应信息。

31、什么是中断矢量?占几个字节?执行int 50h指令时,其中断服务程序的入口地址存放在**?

答:中断服务程序的入口地址;占4个字节; 140h

32、cpu与外部设备之间传送数据的方式有哪几种?哪一种方式下,cpu的利用率最低?

答:查询方式、程序中断传送方式和直接存储器存取(dma)传送方式; 查询方式。

33、设某外设的数据端口为7h、状态端口为8h,试编写软件查询方式下将al写入到外设的程序段。

答:out 7,al

二、根据给定的条件写出指令或指令序列:

1、将一个字节的立即数送到地址为num的存储单元中。

mov byte ptr[num],23h

2、将16位立即数与地址为mem的存储单元中的数比较。

cmp wode ptr [mem],2333h

3、测试ax的符号位。

test ax,8000h

4、将ax寄存器及cf标志位同时清零。

xor ax,ax

5、用直接寻址方式将首地址为array的字数组中第5个数送往寄存器bx中。

mov bx,[array+8]

6、用寄存器寻址方式将首地址为array的字数组中第5个数送往寄存器bx中。

mov bp,array

mov bx,[bp+8]

三、按照给定的条件为程序定义一个数据段,并画出存储单元的示意图:

1、str是字符串this is a data_segment。

2、dat1是字节变量,初值为23,4bh,126,0d3h。

3、dat2是16进制数字变量,初值为100,255,2 dup(3,5)

4、len是以上存储单元的字节数。

四、写出完成下列功能的程序段:

1、将dl的高4位二进制数转换成1位16进制数的ascii码。

mov dl,32h

mov cl,4

shr dl,cl

cmp dl,9

jg next

add dl,48

jmp endd

next:add dl,55

2、将al中的8位二进制数高4位和低4位交换。

mov al,98

mov cl,4

rol al,cl

3、将al中的8位有符号数转换成它的绝对值。

cmp al,0

jg end

imul -1

4、输入一个字母,然后输出它的后续字母。

data segment

charr db ?,0ah,0dh,'$

data ends

code segment

assume cs:code,ds:data

start:

mov ax,data

mov ds,ax

mov ah,01

int 21h

inc al

mov charr,al

mov dx,offset charr

mov ah,09h

int 21h

mov ah,4ch

int 21h

code ends

end start

5、将dx:ax寄存器中的32位数向右移两位。

六、编写汇编语言程序,要有完整的格式(要有必要的数据段和**段)

1、在屏幕上显示两个字符串,两个字符串要在不同的行。

this is a program

disk operation system

data segment

aa db 'this is a program',0ah,0dh,'disk operation system','data ends、code segment

assume cs:code,ds:data、start:

mov ax,data、 mov ds,ax

mov dx,offset aa、 mov ah,09h

int 21h、mov ah,4ch、 int 21h

code ends、 end start

2、用移位指令将x乘以30,结果存入y单元。

汇编复习题

一 单项选择题。1.指令mov ax,2000h 的寻址方式为 a.基址寻址 b.寄存器间接寻址 c.变址寻址 d.存储器直接寻址。2 在debug工具中,单步执行指令的命令是 a.gb.dc.td.r 3 若栈顶的物理地址为20100h,当执行完指令push ax后,栈顶的物理地址为 a.2009...

汇编复习题

汇编语言程序设计 复习题。一 单项选择题。1 使计算机执行某种操作的命令是 b a.宏指令 b.指令 c.伪指令 d.语句。2 换码指令的助记符是 a a.xchg b.lea c.xlat d.mov 3 下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是 b 4 计算机能直接识别并执行的语言...

汇编语言程序设计复习题

一 填空题。1.8086 8088cpu标志寄存器中的tf if和 属于控制标志位,而af pf of cf和 属于状态标志位。2.任何变量都有 和 三种属性。3.双字节无符号整数的最大值为 双字节有符号整数的最大值为 4.伪指令macro dq和end的标号名字域必须有名字的是 不得有名字是 可有...