汇编模拟试题A

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2010-2011学年第1学期考试试卷(A)

课程名称:汇编语言程序设计共 2 页

考试时间: 120 分钟总分: 100分考试方式:闭卷

适用专业(班级):计算机科学与技术班级

姓名学号

注:答案必须写在答题纸上,并注明题号,例如二、【1】、,否则成绩记为0。

一、选择题(单选,每小题2分,共10分)

1、8086/8088CPU的寄存器组中,8位的寄存器共有( c)个。

A、4

B、6

C、8

D、10

2、设(DS)=2000H,(ES)=3000H,(SI)=200H,指令”MOV ES:[SI],AL”目的操作数的物理地址为(b )。

A、20200H

B、30200H

C、50200H

D、200H

3、若定义”B DW 1,2,10 DUP(0)”,则该伪指令分配(d )个字节单元。

A、10

B、20

C、22

D、24

4、下列指令正确的是(c )。

A、MOV CX,DL

B、MOV IP,AX

C、MOV AL,30H

D、MOV [SP],AX

5、Intel386以上的处理器工作在(a )下存储器的地址采用虚拟地址、线性地址、物理地址3种方式来描述,需要通过一种称为描述符表的数据结构来实现对内存单元的访问。

A、保护模式

B、系统模式

C、V86模式

D、实模式

二、填空题(每空 2分,共10 分)

1、8086/8088CPU的地址有20根(位),则可寻址的内存地址空间是1M

2、如果(AL)=85H,(CL)=4,则执行指令”SAR AL, CL”后,(AL)=0f8h 。

3、语句”MOV BX,OFFSET A”可用LEA BX,A一条指令代替。

4、微机系统中数据传送方式主要程序控制方式、中断方式、直接存储器存取DMA方式、通道和I/O处理机方式。

5、执行如下程序:

main( )

{printf(“display a character c: ”);

_ _asm mov ah,02h

_ _asm mov dl,’E’

_ _asm int 21h

}

输出结果: display a character c: E 。

三、程序分析题(每小题15分共30分)

1、假设数据段中数据定义如下,执行下面程序段并回答问题。

data segment

var dw 'AB',12,34

var1 db 127,'ab',45

var2 dd 23

count equ $-var1

x dw count dup(count dup (0))

y label word

z db '123abc'

v dw 1234h,$-var

data ends

code segment

assume cs:code,ds:data

start:

mov ax,data

mov ds,ax

mov ax,count ;(ax)=? ……………………….[1.1]

mov bx,z-x ;(bx)=? ………………………..[1.2]

mov cx,v+2 ;(cx)=? ………………………..[1.3]

mov dx,var ;(dx)=? ………………………..[1.4]

mov y+3,2

mov si,y+4 ;(si)=? ………………………..[1.5]

add z+5,1

mov di,word ptr z+4 ;(di)=? ………………………..[1.6]

mov ax,4c00h

int 21h

code ends

end start

2、设数据X、Y均为字节型变量,编写计算下面函数值的程序。

要求用JGE和JG实现程序功能,请完善下列程序。

.model small

.stack

.data

x db 4

y db ?

.code

.startup

cmp x,0

[2.1] ;当x>=0时,则转到next1

[2.2] ;当x<0时,-1→y

jmp quit

next1:

[2.3] ;当x>0时,则转到next2

[2.4] ;当x=0时,0→y

jmp quit

next2:

[2.5] ;当x>0时,1→y

quit:

.exit

end

四、程序解释题(每小题15分,共15分)

解释有标号语句在程序中的功能,例如:[1.0] 简化段定义,存储模式为小模式small

1、从键盘接收一个无符号十进制数,存入变量array中。例如从键盘输入:1234,则(array)=1234。

.model small ; [1.0] 简化段定义,存储模式为小模式small

.stack

.data ; [1.1]

array dw ?

.code

.startup

call decibin ; [1.2]

mov array,ax ; [1.3]

.exit

;子程序名:decibin

;功能:从键盘接收一个无符号十进制数

;入口参数:无

;出口参数:ax

;其他说明:在子程序内部使用cx存放已经接收到的十进制数,再读入十进制数则:cx*10+al→cx,

;输入的数据在0~65535。

decibin proc near

push ax

push bx

push cx

push dx

xor cx,cx ; [1.4]

next:

mov ah,01h

int 21h ; [1.5]

cmp al,30h

jb finish ; [1.6]

cmp al,39h

ja finish ; [1.7]

and al,0fh

xor ah,ah ; [1.8]

xchg cx,ax ; [1.9]

mov bx,10

mul bx ; [1.10]

add cx,ax ; [1.11]

jmp next

finsh:

mov ax,cx ; [1.12]

pop dx

相关文档
最新文档