汇编练习

  • 格式:doc
  • 大小:124.00 KB
  • 文档页数:11

1.已知(AX)=1234H,执行下述三条指令后,(AX)=( D )

MOV BX,AX

NEG BX

ADD AX,BX

A.1234H B.0EDCCH C.6DCCH D.0000H

2.写出完成下述功能的程序段:

(1)传送25H到AL寄存器

(2)将AL的内容乘以2

(3)传送15H到BL寄存器

(4)AL的内容乘以BL的内容

并请写出最后(AX)=?

答:(1)MOV AL, 25H

(2)SHL AL, 1

(3)MOV BL, 15H

(4)MUL BL

最后,(AX)=612H =1554

一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是( c )

A.12CSBH B.12B6BH C.12C59H D.12BFEH

循环指令loop again与(A)等价

A dec cx;jnz again

B inc cx;jnz again

C mul cx;jnz again

D add cx;jnz again

1.指令MOV AX,[BX+4000H]的寻址方式为(B)

A 寄存器间接寻址 B、寄存器相对寻址 C、立即寻址 D、直接寻址

2.试编写一程序段,要求在长度为100H字节的数组中,找出大于42H的无符号数的个数并存入字节单元UP中,找出小于42H的无符号数的个数并存入字节单元DOWN中。

mov si,0

mov Dl,42H

mov Bl,0

mov Al,0

mov cx,100H

begin:

cmp arry[si],Dl

ja above

je next

inc Bl

jmp next

above:inc Al

next: inc si

loop begin

mov UP, Al

mov DOWN,Bl

1.执行下列指令后,(AX)=____。

TABLE DW 10,20,30,40,50

ENTRY DW 3

MOV BX,OFFSET TABLE

ADD BX,ENTRY MOV AX,[BX] 答案:(AX)=1E00H;

1.110D=(6EH)

2.计算score的平均正数,并存入自变量average中,数组以-1位结束标志

data1 segment

data dw 90,54,65,36,78,66,0,82,95,-1

average dw 0

data1 ends

code1 segment assume cs:code1,ds:data1

start:

mov ax,data1

mov ds,ax

xor ax,ax ;清零

xor dx,dx ;用dx,ax 来保存数组元素之和

xor cx,cx ;用cx来保存数组元素个数

lea si,data ;用指针si来访问数组

again:

mov bx,word ptr [si]

cmp bx,0

jl over

add ax,bx

adc dx,0 ;把当前元素加到dx,ax中

inc cx ;数组元素+1

add si,2

jmp again

over:

jcxz exit ;防止零做除数,即数组是空数组

div cx

mov average,ax

exit:

mov ax,4c00

int 21h

code1 ends

end start

1.ALL_ZERO DB 0,0,0,0,0 用复制操作可改为:_____________

答案:ALL_ZERO DB 5 DUP(0)

2.编写程序段,完成下面公式的计算

2.试编写一程序段,要求在长度为100H字符的数组中,找出大于42H的无符号数的个数并存入字节单元DOWN中。

答案:

JMP BEGIN

UP DB 0

DOWN DB 0

TABLE DB 100H DUP (?) ;数组

BEGIN:

MOV CX,100H

MOV BX,-1

MOV SI,0

MOV DI,0

L1:INC BX

CMP TABLE[BX],42H

JA L2

JB L3

JMP L4

L2:INC SI

JMP L4

L3:INC DI

L4:LOOP L1

MOV UP,SI

MOV DOWN,DI

如 (AL)=0B4H,(BL)=11H,求执行指令IMUL BL和MUL BL后的乘积值。

执行IMUL BL的结果为 (AX)=0FAF4H=-1292D,CF=OF=1

执行MUL BL的结果为(AX)=0BF4H=3060D,CF=OF=1

计算(V-(X*Y+Z-540))/X

mov ax,x

imul y mov cx,ax

mov bx,dx

mov ax,z

cwd

add cx,ax

adc bx,dx

sub cx,540

sbb bx,0

mov ax,v

cwd

sub ax,cx

sbb dx,bx

idiv x 1. AX又被称为(累加)器。

2. 假设X和X+2单元的内容为双精度数p,Y和Y+2单元的内容为双精度烽q, X和Y为低位字,试说明下列程序段做什么工作?

MOV DX,Y+2

MOV AX,Y

ADD AX,Y

ADC DX,Y+2

CMP DX,X+2

JL L2

JG L1

CMP AX, X

JBE L2 L1: MOV AX,2

JMP SHORT EXIT

L2: MOV

AX,3

EXIT:INT 20H

答案:为了比较2q与p的大小。若是2q>p, AX为2; 若是2q

3.IP( )

A.保存当前栈顶地址的寄存器 B。指示下一条要执行的指令的地址

C.以后进先出方式工作的存储空间 D。唯一代表存储空间中每一个字节单元的地址 (B)

1. 已知 SP=12EH ,执行段间返回指令 RET 后, SP 的值是 (

) 。(A)

12AH

(B)

12CH

(C)

130H

(D)

132H

答案D.

1. 1.指令JMP FAR PTR DONE属于()

A. A.段内转移直接寻址

B. B.段内转移间接寻址

C. C.段间转移直接寻址

D. D.段间转移间接寻址

答案:C

2. 2.假定(DX)=10111001B,(CL)=0.3,(CF)=1,试确定下列各条指令单独执行后,DX中的值。

(1) (1)SHR DX,1 (2) (2)RCR DL,1

(3) (3)RCL DX,CL

答案:(1)005CH

(2)00DCH

(3)05CCH

1. 1.在下列指令中,错误的是()

A.MOV AL, [BX+SI] B. JMP SHORT, DONI

C.DEC [ BX] D.MUL, CL

答案是:C

1. 1.条件转移指令JNE的测试条件为()

A. A.ZF=0

B. B.CF=0

C. C.ZF=1

D. D.CF=1

答案:A

1. 1.一个有128个数据区,它的起始地址12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址()

A.12CSBH B.12B6BH C.12C59H D.12BFEH

答案是: C

2. 2.写出完成下述功能的程序段。

(1) (1)传送25H 到AL 寄存器

(2) (2)将AL的内容乘以2。

(3) (3)传送15H到BL寄存器。

(4) (4)AL 的内容乘以BL 的内容

(5) (5)并写出最后(AL)=?

答案是:

(1)MOV AL 25H

(2) SHL AL 1

(3) MOV BL 15H

(4) MUL BL

最后(AL)=612H=1554

评分标准:每条2分

1. 1.指出下列指令中源操作数和目的操作数的寻址方式

ADD BX, 1234H

答案是:

寄存器寻址 立即寻址

2.简述 ADD BX ,1000H, ADD BX,[1000H], ADD BX,DS:[1000H]和ADDD BX,ES:[1000H]这四条指令的异同点?

答案是:

相同点:(1)指令的操作符都是ADD,实现两个数相加;

(2)目的操作数都是BX.

不同点:(1)源操作数的寻址方式不同;

(2)每条指令执行后目的操作数BX 中得到得及如果不同

2, 机器字长为16为,写出N= —117D的补码表示;

+117D可表示为 0000 0000 0111 0101

按位求反后为 1111 1111 1000 1010

未位加1后 1111 1111 1000 1011

用十六进制数表示为 F F 8 B

即[—117D]补=FF8BH

1, 1,05C3H

* 00ABH

____________

3F61

+ 399E

______________

3D941H

3 ARRAY DW 1,2,3对于指令 MOV CX,LENGTH ARRAY 汇编程序将其形成为:_____

答案:MOV CX,1

4 指令MOV AX,[BX+2000H]的寻址方式为(B)