汇编练习
- 格式: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)