跪求高手帮忙完成汇编复习题

step肥 农民工  2010-04-18 09:03:55
一. 单项选择题:
1.对汇编语言程序进行翻译,形成OBJ文件的是 a 。
A 汇编程序 B 连接程序
C 编辑程序 D 调试程序
2.下列各个8位二进制数的补码中,真值最大的是 d 。
A 10001000 B 11111111
C 00000000 D 00000001
3.MASM语句中,表示常数不正确的形式是 。
A 01101001B B A346H
C ‘A’ D 5600
4.8086存储器存储空间为1MB,其地址范围为 。
A 0-FFFH B 0-FFFFFH
C 0-FFFFH D 0-FFH
5.Dw 50 dup(?) 语句预留了 个字节存储空间。
A 25 B 50
C 100 D 200
6.下列指令中有操作数在代码段中的是 。
A mov ax,34h B add ax,bx
C inc word ptr[34h] D cmp ax,[34h]
7.堆栈的数据操作原则(方式)是 。
A 先进先出 B 先进后出
C 随机 D 循环
8.选择格式正确的移位指令是 。
A SHL BX,CX B SHL BX,CH
C SLL BX,CL D ROL AL,CL
9.假设AL=5,要使得AL=0AH,应执行的指令是 。
A not al B and al,0fh
C xor al,0f0h D or al,0fh
10.设置逻辑段应该采用的一对伪指令是 。
A proc/endp B start/end start
C segment/ends D macro/endm
11.执行or al,80h后,可以肯定的执行结果是AL寄存器的 。
A 最高位为0 B 最高位为1
C 低7位均为0 D 低7位均为1
12.若标志DF为0,则执行串操作MOVS指令后,寄存器SI,DI会 。
A 不变 B 减量
C 增量 D 不定
13.如下指令可将寄存器内容改变的是 。
A cmp ax,bx B test ax,bx
C and ax,bx              D xchg ax,ax
14.MUL CL指令实现 功能。
A 有符号乘法:AX  AL×CL B 无符号乘法:DX  AL×CL
C 有符号乘法:DX  AL×CL D 无符号乘法:AX  AL×CL
15.执行下面指令序列后,结果是 。
MOV AL,93H
CBW
A AX=FF93H B AX=8093H
C AX=0093H D AX=0F93H
16.对汇编语言程序进行翻译,形成EXE文件的是 。
A 汇编程序(masm) B 连接程序(link)
C 编辑程序(edit等) D 调试程序(debug)
172.下列各个8位二进制数的补码中,真值最小的是 。
A 10001000 B 11111111
C 00000000 D 00000001
18.MASM语句中,表示常数不正确的形式是 。
A 01101001B B 5600
C ‘A’ D A346H
19.8086存储器存储空间为1MB,其地址范围为 。
A 0-FFFH B 0-FFFFFH
C 0-FFFFH D 0-FFH
20.执行 mov bx,seg var指令,bx得到变量var的 。
A 物理地址 B 偏移地址
C 段地址 D 有效地址
21.下列汇编指令中,源操作数为立即数的是 。
A mov ax,34h B add ax,bx
C inc word ptr[34h] D cmp ax,[34h]
22.在汇编指令Next:mov al, [si]中,next:是 。
A 行号 B 标号
C 变量名 D 指令
23.欲设定从偏移地址100开始安排程序,可使用 伪指令。
A start=100 B start db 100
C org 100 D start equ 100
24.若定义xyz dw ’A’,则xyz字存储单元中存放的数据是 。
A 0041H B 4100H
C 0061H D 6100H
25.设置子程序应该采用的一对伪指令是 。
A macro/endm B start/end start
C segment/ends D proc/endp
26.执行and al,08h后,可以肯定的执行结果是AL寄存器的 。
A 最高位为0 B 最高位为1
C 低7位均为0 D 低7位均为1
27.在移位指令中,当移位次数大于1时,应先将移位次数置于 寄存器中。
A CH B DH
C DL D CL
28.如下指令可将AX寄存器的内容改变的是 。
A cmp ax,bx B test ax,bx
C and ax,bx              D xchg ax,ax
29.汇编语言中的变量有多种类型属性,但错误的类型是 。
A 字节型byte B 字符型char
C 字型word D 双字型dword
30.在汇编语言程序中,对END语句描述正确的是 。
A END语句是一可执行语句 B END语句表示程序执行到此结束
C END语句表示源程序到此结束 D END语句汇编后产生机器码
二、填空题:
1.在80x86微机的输入/输出指令中,可以在指令中直接指定00~FFH的端口号,则可直接由指令指定的I/O端口数为 。
2.在MOV AX,[BX] [SI]中,源操作数采用的是_____________ ______
寻址方式。
3.与mov bx, offset buf等效的LEA指令是_ ___ _ ___。
4.十六进制数1FD4H转换为二进制数的值是 ,转换为十进制数的值是 。
5.若定义:bdata db 3 dup(1, 2 , 4),则bdata变量前5个单元从低地址到高地址的数据依次是 。
6.从逻辑地址为0700:100开始的一个8个字的数据区,其最后一个字的物理地址是 。
7.在BIOS功能调用中,负责显示输出的显示I/O中断为 号中断,负责键盘输入的键盘I/O中断为 号中断,而在DOS中,负责基本I/O功能调用的I/O中断是 号中断。
8.机器数一般用最有效位来表示数的符号,正数用 表示,
负数用 表示。
9.汇编语言中,源操作数和目标操作数采用_____________ ______分隔。
10.与LEA BX, buf等效的MOV指令是_ ____ ___。
11.11110110B= D = H 。
12.已知数据段如下:执行指令mov ax,ary+2后,ax= 。
Org 0100H
Ary dw 3,4,5,6
Cnt equ $-ary
Db 1,2,cnt,3
13.在BIOS功能调用中,负责显示输出的显示I/O中断为 号中断,负责键盘输入的键盘I/O中断为 号中断,而在DOS中,负责基本I/O功能调用的I/O中断是 号中断。
三、简答题:
1.指出下列指令中的错误并改正
(1) mov BH, AX


(2) mov BYTE PTR [BX],1000


(3) mov [BX], [SI]


2.写出把首地址为ARRAY的字数组的第5个字送DX寄存器的指令.要求使用以下几种寻址方式。
(1) 寄存器间接寻址



(2) 寄存器相对寻址



(3) 基址变址寻址




3.请用8位二进制补码计算下列表达式的值,并用十六进制数表示。
(1)85H+(-76H) (2)(-85H)- 76H

4.已知(DS)=2000H、(BX)=0100H、(SI)=0002H,存储单元(20100H)-(20103H)依次存放(十六进制)12H 34H 56H 78H,存储单元(21200H)-(21203H) 依次存放(十六进制)2AH 4CH 0B7H 65H,说明下列每条指令执行完后AX寄存器的内容。
(1) mov ax, [1200h] (ax)=( )
(2) mov ax, [bx+1100h] (ax)=( )
(3) mov ax,[bx][si+1100h] (ax)=( )
5.画图说明下列伪指令所定义的存储空间及初始化的数据值。
WORD_VAR DW 2 DUP(0,1,2), ?,’BY’,256H




6.指出下列指令中的错误并改正
(1) mov BH, 1000


(2) mov BYTE PTR [BX],1000


(3) mov cs, ax


7.写出把首地址为ARRAY的字数组的第5个字送DX寄存器的指令.要求使用以下几种寻址方式。
(1) 寄存器间接寻址



(2) 寄存器相对寻址



(3) 基址变址寻址




8.请用8位二进制补码计算下列表达式的值,并用十六进制数表示。
(1)(-85H)+76H (2)85H-(- 76H)


9.已知(DS)=2000H、(BX)=0100H、(SI)=0002H,存储单元(20100H)-(20103H)依次存放(十六进制)12H 34H 56H 78H,存储单元(21200H)-(21203H)依次存放(十六进制)2AH 4CH 0B7H 65H,说明下列每条指令执行完后AX寄存器的内容。
(1) mov ax, [1200h] (ah)=( )
(2) mov ax, [bx+1100h] (al)=( )
(3) mov ax,[bx][si+1100h] (ax)=( )

10.画图说明下列伪指令所定义的存储空间及初始化的数据值。
BYTE_VAR DB 2 DUP(1,2,2 dup(0)), ’BY’, 56H




四、程序阅读题:
1.下列程序段运行后,AX= 、 CF= 。
mov ax, 0bc5fh
mov bx, 0cfbh
xor ax, bx
or ax, bx
2.假设AX=1234h,执行如下程序段后,AX= 、 BX 。
inc ax
mov bx,ax
neg bx
add ax,bx
3.假设程序中的数据定义如下: Buf 1 db 30 DUP(?)
Buf 2 db 20 DUP(?)
Buf 3 db 1,2,3,4,5,6
(1) 用一条指令将Buf3的头两个字节的内容放入SI。


(2) 写一条伪操作使Buf3_lenght的值等于Buf3域的实际长度。


4.下列指令段的功能是在数组中查找数据3,请在空格中填入应有的内容。
Org 120h
datal db 0,1,2,3,4,5,6,7,8,9
count equ $-datal
...
mov di,offset datal
mov al,3
cld
mov cx,

Repnz scasb

该命令序列执行后,CX=

DI= 。

5.阅读下列程序段,写出该程序段所执行的功能。

Mov ch,4
Again: Mov cl,4
Rol bx,cl
Mov al,bl
And al,0fh
Add al,30h
Cmp al,3ah
Jl disp
Add al,7h
Disp: mov dl,al
Mov ah,2
Int 21h
Dec ch
Jnz again
...
6.下列程序段运行后,BX= 。
mov cl, 3
mov bx, 0b7h
rol bx, 1
rol bx, cl
7.对于下面定义,各条MOV指令单独执行后,有关寄存器的内容是什么?
FLDB DB ?
TABLEA DW 20 DUP(?)
TABLEB DB  ’ABCD’
(1)MOV AX,TYPE FLDB (AX)= 。
(2)MOV CX,LENGTH TABLEA (CX)= 。

五、程序设计题:
1.分别用一条汇编语言语句完成如下功能:
(1)将AX中的高字节和低字节内容交换;


(2)定义字符串变量string的值为happy;


(3)将AX寄存器清零;



2.编写程序段,要求不改变DH的内容,但要清除其最左边3位的值,结果存入BH寄存器。






3.设有两个无符号字数据X和Y,请写出程序段:比较X、Y的大小。若X大,则输出字母X,若Y大,则输出字母Y。



4.编写一个段内调用子程序find_char。子程序的参数是一个N字节数组的首地址Table,数N及字符CHAR。要求在N字节数组中查找字符CHAR,并记录该字符的出现次数。


5.有一个首地址为ARRAY的M字数组,试编写一个程序段:求出该数组的内容之和(不考虑溢出),并把结果存入TOTAL中。



6.编写程序段,要求把BL中的数除以CL中的数,并把其商乘以2,最后结果存入DX寄存器中。





7.如(AX)=0012H,(BX)=0034H,要求把它们装配在一起形成(AX)=1234H,写出相应的指令语句。
MOV CL,8
ROL AX,CL
ADD AX,BX
8.编写一个段内调用子程序disp,用来显示一个字符Y,并输出回车和换行。


9.请编写一个完整的汇编语言源程序,要求如下:
从键盘输入一系列以$为结束符的字符串,然后对其中的非数字字符计数,并显示出计数结果。


...全文
943 2 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
哦NO哪个学校的呀,编程的第六题在做除法的时候不用考虑被除数范围咩? 还有。。乘法那个存储字长也不需要考虑吗
回复
step肥 2010-04-23
其实我全部都不会........毕业补考...what the fuck,麻烦帮帮忙吧........
回复
Beyond_cn 2010-04-22
太长了。。给我留几个你不会的吧。。。


What a fucking day!
回复
redher 2010-04-21
下面的内容越做心里越没底.
三、简答题:
1.指出下列指令中的错误并改正
(1) mov BH, AX
源操作数与目标操作数长度不等
MOV WORD PTR BH,AX

(2) mov BYTE PTR [BX],1000
目标操作数位数不够.???????应该有更好的说法.
应该改成
mov word ptr [bx],1000

(3) mov [BX], [SI]
内存之间的内容不能直接赋值(移动),需要借助寄存器转换
mov ax, word ptr[bx]
mov word ptr[si],ax

2.写出把首地址为ARRAY的字数组的第5个字送DX寄存器的指令.要求使用以下几种寻址方式。
(1) 寄存器间接寻址
mov ax,offset array
add ax,9
mov dx,word ptr [ax]


(2) 寄存器相对寻址
mov dx,[array+9]


(3) 基址变址寻址
mov si,9
mov dx,[si]



3.请用8位二进制补码计算下列表达式的值,并用十六进制数表示。
(1)85H+(-76H) (2)(-85H)- 76H

4.已知(DS)=2000H、(BX)=0100H、(SI)=0002H,存储单元(20100H)-(20103H)依次存放(十六进制)12H 34H 56H 78H,存储单元(21200H)-(21203H) 依次存放(十六进制)2AH 4CH 0B7H 65H,说明下列每条指令执行完后AX寄存器的内容。
(1) mov ax, [1200h] (ax)=( )
(2) mov ax, [bx+1100h] (ax)=( )
(3) mov ax,[bx][si+1100h] (ax)=( )
5.画图说明下列伪指令所定义的存储空间及初始化的数据值。
WORD_VAR DW 2 DUP(0,1,2), ?,’BY’,256H
0 1 2 0 1 2 ? Y B 256
0,0,1,0,2,0,0,0,1,0,2,0,0,59,42,FF,0


6.指出下列指令中的错误并改正
(1) mov BH, 1000
目标操作数不能放下源操作数
MOV BX,1000

(2) mov BYTE PTR [BX],1000
mov word prt [bx],1000

(3) mov cs, ax
cs不能用mov指令改写.
回复
redher 2010-04-21
二、填空题:
1.在80x86微机的输入/输出指令中,可以在指令中直接指定00~FFH的端口号,则可直接由指令指定的I/O端口数为 256。
2.在MOV AX,[BX] [SI]中,源操作数采用的是_____________ ______DS*16 + [BX]+[SI]知道在哪里,但实在是分不清那么多寻址方式.......蒙一个(基址加变址)...无语中
寻址方式。
3.与mov bx, offset buf等效的LEA指令是_ ___ _ ___。获取有效地址
4.十六进制数1FD4H转换为二进制数的值是 1111111010100B,转换为十进制数的值是 8148D。 windows计算算的.
5.若定义:bdata db 3 dup(1, 2 , 4),则bdata变量前5个单元从低地址到高地址的数据依次是 。1,2,4,1,2
6.从逻辑地址为0700:100开始的一个8个字的数据区,其最后一个字的物理地址是 。0700*16+100+7= 7107h;
7.在BIOS功能调用中,负责显示输出的显示I/O中断为 号中断,负责键盘输入的键盘I/O中断为号中断,而在DOS中,负责基本I/O功能调用的I/O中断是 号中断。
不会
8.机器数一般用最有效位来表示数的符号,正数用0表示,
负数用1表示。
9.汇编语言中,源操作数和目标操作数采用_________,____ ______分隔。
10.与LEA BX, buf等效的MOV指令是_ mov BX, offset buf____ ___。
11.11110110B= 246D = F6H 。
12.已知数据段如下:执行指令mov ax,ary+2后,ax=5 。
Org 0100H
Ary dw 3,4,5,6
Cnt equ $-ary
Db 1,2,cnt,3
13.在BIOS功能调用中,负责显示输出的显示I/O中断为 号中断,负责键盘输入的键盘I/O中断为号中断,而在DOS中,负责基本I/O功能调用的I/O中断是 号中断。
不会

做为参考吧.
回复
redher 2010-04-21
一. 单项选择题:
3.MASM语句中,表示常数不正确的形式是 。
A 01101001B B A346H
C ‘A’ D 5600
B:应该是0A346H
4.8086存储器存储空间为1MB,其地址范围为 。
A 0-FFFH B 0-FFFFFH
C 0-FFFFH D 0-FFH
B:1MB= 1024*1024*1byte,即2的20次幂,所以可寻址位数是20位
5.Dw 50 dup(?) 语句预留了 个字节存储空间。
A 25 B 50
C 100 D 200
D:DWord站4个byte.50 * 4 = 200
6.下列指令中有操作数在代码段中的是 。
A mov ax,34h B add ax,bx
C inc word ptr[34h] D cmp ax,[34h]
不会??????????
7.堆栈的数据操作原则(方式)是 。
A 先进先出 B 先进后出
C 随机 D 循环
B 先进后出
8.选择格式正确的移位指令是 。
A SHL BX,CX B SHL BX,CH
C SLL BX,CL D ROL AL,CL
B:解释不太清除.不敢乱说.等高手.
9.假设AL=5,要使得AL=0AH,应执行的指令是 。
A not al B and al,0fh
C xor al,0f0h D or al,0fh
A:b运行后al = 0fh.c运行后al= 0f5h.d运行后al=0fh
10.设置逻辑段应该采用的一对伪指令是 。
A proc/endp B start/end start
C segment/ends D macro/endm
C:a是定义过程的开始结束,b是告诉程序装入后,ip指针所指的语句,d不知道?????
11.执行or al,80h后,可以肯定的执行结果是AL寄存器的 。
A 最高位为0 B 最高位为1
C 低7位均为0 D 低7位均为1
B:
12.若标志DF为0,则执行串操作MOVS指令后,寄存器SI,DI会 。
A 不变 B 减量
C 增量 D 不定
C
13.如下指令可将寄存器内容改变的是 。
A cmp ax,bx B test ax,bx
C and ax,bx              D xchg ax,ax
C
14.MUL CL指令实现 功能。
A 有符号乘法:AX ?? AL×CL B 无符号乘法:DX ?? AL×CL
C 有符号乘法:DX ?? AL×CL D 无符号乘法:AX ?? AL×CL
D
15.执行下面指令序列后,结果是 。
MOV AL,93H
CBW
A AX=FF93H B AX=8093H
C AX=0093H D AX=0F93H
A:
CBW - Convert Byte to Word
Usage: CBW
Modifies flags: None
Converts byte in AL to word Value in AX by extending sign of AL
throughout register AH.
16.对汇编语言程序进行翻译,形成EXE文件的是 。
A 汇编程序(masm) B 连接程序(link)
C 编辑程序(edit等) D 调试程序(debug)
B:
172.下列各个8位二进制数的补码中,真值最小的是 。
A 10001000 B 11111111
C 00000000 D 00000001
A:
A=-8,b=-1,c=0,d=1

18.MASM语句中,表示常数不正确的形式是 。
A 01101001B B 5600
C ‘A’ D A346H
D:0A346H.前面加0,是为了和标号做区分.标号是不允许数字开头的,
19.8086存储器存储空间为1MB,其地址范围为 。
A 0-FFFH B 0-FFFFFH
C 0-FFFFH D 0-FFH
B重复
20.执行 mov bx,seg var指令,bx得到变量var的 。
A 物理地址 B 偏移地址
C 段地址 D 有效地址
C
21.下列汇编指令中,源操作数为立即数的是 。
A mov ax,34h B add ax,bx
C inc word ptr[34h] D cmp ax,[34h]
A,b是寄存器寻址,c是内存地址DS:[34]开始的word,d是内存DS:[34]开始的byte
22.在汇编指令Next:mov al, [si]中,next:是 。
A 行号 B 标号
C 变量名 D 指令
B 标号
23.欲设定从偏移地址100开始安排程序,可使用 伪指令。
A start=100 B start db 100
C org 100 D start equ 100
不会:?????????????????高手解释
24.若定义xyz dw ’A’,则xyz字存储单元中存放的数据是 。
A 0041H B 4100H
C 0061H D 6100H
A
25.设置子程序应该采用的一对伪指令是 。
A macro/endm B start/end start
C segment/ends D proc/endp
D
26.执行and al,08h后,可以肯定的执行结果是AL寄存器的 。
A 最高位为0 B 最高位为1
C 低7位均为0 D 低7位均为1
B
27.在移位指令中,当移位次数大于1时,应先将移位次数置于 寄存器中。
A CH B DH
C DL D CL
D:严格来说应该是CX
28.如下指令可将AX寄存器的内容改变的是 。
A cmp ax,bx B test ax,bx
C and ax,bx              D xchg ax,ax
C
29.汇编语言中的变量有多种类型属性,但错误的类型是 。
A 字节型byte B 字符型char
C 字型word D 双字型dword
B 字符型char
30.在汇编语言程序中,对END语句描述正确的是 。
A END语句是一可执行语句 B END语句表示程序执行到此结束
C END语句表示源程序到此结束 D END语句汇编后产生机器码
C


先把好作的做完.

6.下列指令中有操作数在代码段中的是 。
A mov ax,34h B add ax,bx
C inc word ptr[34h] D cmp ax,[34h]
不会??????????

23.欲设定从偏移地址100开始安排程序,可使用 伪指令。
A start=100 B start db 100
C org 100 D start equ 100
不会:?????????????????高手解释

这2个问题不会希望高手释疑!


不保证全对啊.
回复
redher 2010-04-21
5楼chenweiye120说的对.
谢谢纠正!
回复
redher 2010-04-21
五、程序设计题:
1.分别用一条汇编语言语句完成如下功能:
(1)将AX中的高字节和低字节内容交换;
xchg al,ah

(2)定义字符串变量string的值为happy;
db 'happy'

(3)将AX寄存器清零;
xor ax,ax

mov ax,0

add ax,0

2.编写程序段,要求不改变DH的内容,但要清除其最左边3位的值,结果存入BH寄存器。
mov al,dh
add al,1fh
mov bh,al


3.设有两个无符号字数据X和Y,请写出程序段:比较X、Y的大小。若X大,则输出字母X,若Y大,则输出字母Y。



4.编写一个段内调用子程序find_char。子程序的参数是一个N字节数组的首地址Table,数N及字符CHAR。要求在N字节数组中查找字符CHAR,并记录该字符的出现次数。
assume cs:codesg,ds:datasg

datasg segment
TABLE db '123451234511345'
N db 15
CHAR db '1'
datasg ends

codesg segment

_CharCount proc
;ax记录字符CHAR出现的次数
push bx
push cx
push si
push dx

mov dl,CHAR
mov cx,0
mov cl,N
mov si,offset TABLE
mov bx,0
mov ax,0
s: cmp dl,byte ptr TABLE[si+bx]
jnz s1
inc ax
s1:
inc bx
loop s

pop dx
pop si
pop cx
pop bx
ret
_CharCount endp
start:
mov ax,datasg
mov ds,ax

call _CharCount
mov ax,4c00h
int 21h
codesg ends
end start

5.有一个首地址为ARRAY的M字数组,试编写一个程序段:求出该数组的内容之和(不考虑溢出),并把结果存入TOTAL中。

assume cs:codesg,ds:datasg

datasg segment
ARRAY dw 1111h,2222h,3333h,4444h
M db 4
TOTAL dw ?
datasg ends

codesg segment

_TotalArray proc
push ax
push bx
push cx
push si

mov ax,0
mov cx,0
mov cl,M
mov bx,0
mov si,offset ARRAY
s: add ax,ds:[si+bx]
inc bx
inc bx
loop s
mov TOTAL,ax
pop si
pop cx
pop bx
pop ax
ret
_TotalArray endp
start:
mov ax,datasg
mov ds,ax

call _TotalArray
mov ax,4c00h
int 21h
codesg ends
end start


6.编写程序段,要求把BL中的数除以CL中的数,并把其商乘以2,最后结果存入DX寄存器中。

assume cs:codesg


codesg segment

_TotalArray proc
mov ax,0
mov al,bl
div cl
mov ah,0
shl al,1
mov dx,ax
ret
_TotalArray endp
start:
mov bl,80
mov cl,10
mov dx,0
call _TotalArray
mov ax,4c00h
int 21h
codesg ends
end start



3,8,9没有回答.因为对int用的不熟.
其他的答案都是完整程序,自己根据需要节选.
回复
chenweiye120 2010-04-21
第五题DW代表2个字节吧,DD才是4个字节。
回复
大熊猫侯佩 2010-04-20
所有人都吓跑了,too long!!!

还好偶keep了
回复
相关推荐
发帖
汇编语言
创建于2007-08-27

2.1w+

社区成员

汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
申请成为版主
帖子事件
创建了帖子
2010-04-18 09:03
社区公告
暂无公告