第8章汇编测试题目
共4道单选题目
下列指令序列不能够实现把内存地址0:202h中的字节数据送入al功能的是___(3)___。
1、
mov ax,0
mov ds,ax
mov bx,202h
mov al,[bx]
2、
mov ax,0
mov ds,ax
mov bx,200h
mov al,[bx+2]
3、
mov ax,0
mov ds,ax
mov bp,202h
mov al,[bp]
4、
mov ax,0
mov ds,ax
mov bp,200h
mov al,ds:[bp+2]
分析:参考《汇编语言》第一版第149页,只要在[...]中使用寄存器bp,而指令中没有显性地给出段地址,段地址默认在ss中,所以,选项3不能实现。
下列指令不合理的是___(3)___。
1、 mov ds:[0ffh],al
2、 mov ds:[0ffh],ax
3、 mov ds:[0ffh],0ffh
4、 push ds:[0ffh]
分析:
不支持把立即数放到内存中。
mov dx,0
mov ax,1001
mov bx,100
div bl
以上四条指令执行完后,ah值是__(1)___。
1、 1
2、 10
3、 1001
4、 0
分析:
因为bl是8位数,即除数为8位,则被除数为ax,运完完毕后,al中放的是商,ah中放的是余数。
1001/100 余数为1
对如下程序:
assume cs:codesg,ds:datasg
datasg segment
dd 123456h
dw 789h,0h
datasg ends
codesg segment
start: mov ax,datasg
mov ds,ax
mov ax,ds:[0]
mov dx,ds:[2]
div word ptr ds:[4]
mov ds:[6],ax
mov ax,4c00h
int 21h
codesg ends
end start
下列说法正确的是___(4)___。
1、 该程序实现的功能是计算123456h与78900h相除。
2、 该程序由于数据定义非法,无法通过编译。
3、 指令div word ptr ds:[4]可改为div near ptr ds:[4],不影响程序功能。
4、 指令div word ptr ds:[4]采用了直接寻址方式。
分析:
1、错误,计算的是123456h与789h相除
2、数据定义不非法
3、两个指令的含义不同 word ptr指明了内存单元的长度 near ptr用在跳转指令中
4、正确