复习题
一、选择题
1. 下面关于汇编语言源程序的说法中正确的是( b1 )
A. 必须要有堆栈段
B. 一个程序可以有多个代码段
C. 必须要有数据段
D. 只能有一个数据段
2. 在汇编语言程序开发中,一般要按顺序经过(A1 )过程。
a. 用文字编辑程序编写源程序
b. 用连接程序LINK连接程序
c. 用MASM汇编程序,编译成目标程序
d. 用DEBUG程序调试程序
A. abcd
B. acbd
C. adcb
D. adbc
3. 汇编语言编译程序MASM.EXE编译的对象是(A2 )文件。
A.  .EXE
B. .OBJ
C. .ASM
D. .DOC
4、1KB的存储器有____个存储单元?汇编指令有多少个
A、1000
B、1024
C、512
D、256
5、一个CPU的寻址能力为8KB,那么它的地址总线的宽度为A4____。
A、8
B、10
C、12
D、13
6. 1个CPU读取1024字节的数据至少读取了512次,数据总线的宽度A3_____。
A、8
B、10
C、16
D、32
7. 在8086的内存空间中下面哪段内存是不可写的a7_____。
A、0~9FFFF
B、A0000~B7FFF
C、B8000~BFFFF
D、C0000~FFFFF
8、总线从逻辑上分为3类,下列选项中不在其中的是:a6____
A、数据总线
B、并行总线
C、地址总线
D、控制总线
9、下列说法中正确的是:a5___
A、一条指令被执行后,IP的值才进行改变。
B、当CPU执行完当前指令返回debug后CPU就闲下来不再进行工作。
C、e命令可将所有内存单元中的数据进行改变。
D、CPU将CS:IP所指向的内存单元中的数据当作指令来执行。
10. 设SP初值为2000H,执行指令“ PUSH  AX ”后,SP的值是(a8 )
A. 1998H
B. 1FFFH
C. 1FFEH
D. 2002H
11. 执行下列指令序列后,正确的结果是(b9 )
MOV  AL,81H
ADD  AL,AL
A.AL=02H
B. AL=102H
C. AL=04H
D. AL=105H
12. 下面哪个是错误的指令__a9___
A、mov ax,bx
B、add al,0f5H
C、mov al,bh
D、add al,100H
13 指令指针寄存器是(a10 )
A. BP
B. SP
C. IP
D. PSW
14. 下列地址信息与0020H:03EFH确定的内存地址不同的是_a11____。
A、5EFH
B、203H:00EFH
C、005EH:000FH
D、0002H:05CFH
15. 在8086CPU系统中一个栈段的容量最大为_a12____。
A、1KB
B、512KB
C、64KB
D、32GB
16、mov cx,5
s: mov ax,[bx]
add bx,2
loop s
上面指令序列,当指令第一次执行到add bx,2时cx的值_a13____。
A、5
B、4
C、3
D、2
17. 指令MOV AX, [ BX]中源操作数的寻址方式是(a14 )
A. 立即寻址
B. 寄存器寻址
C.寄存器间接寻址
D. 基址变址寻址
18. 在某程序中,定义了262B的数据段data,那么程序载入内存,该段实际占用的内
存空间是____B。
A、256
B、262
C、272
D、512
19、在DEBUG中,b14___选项中的命令可以修改内存单元的内容
A、a
B、d
C、t
D、u
20、下列说法中正确的是___a15_。
A、不同的微处理器有相同的机器指令集。
B、机器语言和汇编语言都需要编译程序来编译成机器指令。
C、每一个汇编指令都对应唯一的一个机器指令。
D、没有存储器CPU也可以工作
二、填空题
a1.1、1KB的存储器,存储单元的编号从0到1023
2、8086PC在存储器分段管理中,物理地址需要___2____个16位寄存器来存储。
3、1B= 8bit ,1KB= 1024B。
4、设DS=2000H,BX=1256H,(20002H)=3280H。
下列指令执行后,寄存器的值各是多少?
(1)JMP  BX ; I P=____1256H_______
(2)MOV AX, DS:[2] ; AX=____3280H______
5、mov ax,936aH
mov bx,79b8H
add al,bl
指令执行后,AX =___9322H______
6、设(DS)=2000H,(ES)=3000H,(SS)=4000H,(BX)=1000H,(BP)=1000H,(SI)=0001H 计算下列各指令中源操作数的物理地址。
(1) MOV AX, ES:[1000H] ; 物理地址PA= 31000H
(2) MOV AX, [BX][SI] ; 物理地址PA= 21001H
三、判断下列指令的正误
1、ADD AX,BL (×)
2、MOV CS, BX ( ×)
3、PUSH AL (×)
4、SUB AX,[BX] (√)
5、POP CS (×)
6、ADD AX,DS (×)
b7、PUSH AL (√)
8、MOV DS, SS ( ×)
9、ADD BL, AL (√)
b10、MOV [BX], [0] ( ×)
四、程序题
a1、编程将10000H~1000FH这段空间当作栈,初始状态栈为空,写出将AX、BX中的数据交换的程序段。
MOV  AX,1000H
MOV  SS,AX
MOV  SP,0010H
PUSH  AX
PUSH  BX
POP  AX
POP  BX
a2、写出将ax中的内容送到内存0000:0200H处的指令序列
MOV  AX,0000H
MOV  DS,AX
MOV  AX,DS:[0200H]
MOV  AX,0000H
MOV  DS,AX
MOV  BX, 0200H
MOV  AX,[BX]
3、编程计算123与456的乘积,请将空白处的指令序列补充完整。
assume cs:code
code segment
__MOV  AX,0___
MOV  CX,123
S:    ADD  AX,456
LOOP  S
mov ax,4c00h
int 21h
code ends
end
a4. 以下程序要实现一次用内存0:0--0:15单元中的数据改写程序中定义的数据,请补充完整。
assume cs:codesg
codesg segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
start:mov ax,0
mov ds,ax
mov bx,0
mov cx,8
s: MOV AX, [BX]
MOV CS:[BX], AX
ADD BX,2
LOOP S
mov ax,4c00h
int 21h
codesg ends
end start

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。