第7章汇编测试题目
共3道单选题目
(1)
生成EXE之后用Debug加载后,查看寄存器内容如下:
ds=0b2d es=0b2d ss=0b3d cs=0b3e ip=0000
程序的起始地址的段地址是_____。 (3)
1、 0b3e
2、 0b2d
3、 0b3d
4、 0
分析:参考《汇编语言》第二版第92页,个人理解:DS+10h是程序的起始地址的段地址
但为什么cs是0b3呢?不清楚。
(2)
下列指令不能执行的是_____。 (3)
1、 mov ax,10h[bx]
2、 mov ax,10h[di]
3、 mov ax,[di+si]
4、 mov ax,10h[bx][si]
分析:di和si不能同时使用。参考《汇编语言》第二版第161页和162页。
“在[..]中,bx,bp,si,di这4个寄存器可以单个出现,或只能以四种组合出现:bx和si,bx和di,bp和si,bp和di”
(3)
对如下程序要实现将datasg段中的字符串"welcome to masm!"复制到它后续的数据区中, (4)
assume cs:codesg,ds:datasg
datasg segment
db 'welcome to masm!'
db '................'
datasg ends
codesg segment
start: mov ax,datasg
mov ds,ax
mov si,0
________
________
mov ax,4c00h
int 21h
codesg ends
end start
在空白区域添加的指令序列合理的是_____。
1、
mov di,10h
mov cx,10h
s: mov ax,[si]
mov [di],ax
add si,2
add di,2
loop s
2、
mov di,10h
mov cx,8
s: mov ax,[si]
mov [di],ax
inc si
inc di
loop s
3、
mov ss,ax
mov sp,32
mov cx,8
s: mov ax,[si]
push ax
add si,2
loop s
4、
mov cx,8
s: mov ax,[si]
mov [si+10h],ax
add si,2
loop s
分析:
选项1:每次处理一个字,只需要循环八次,而不是10h次
选项2:每次处理一个字节,需要循环10h次,而不是8次
选项3:好像是将这串数给倒置了。
选项4:正确