汇编的习题
第一题
-
在下列符号定义语句,ABC的值为:
AA DB 1, 2, 3, ‘123’
BB DB 0
ABC EQU BB - AA
A、-1B、9CHC、0CHD、6
正确答案: D 我的答案:A
- 分析:
- 变量名等价于地址,这里是变量相减,就是地址相减。
- 一个字符表示占用一个字节,‘123’占用了三个字节
- EQU:等值操作,就是=

第二题
-
设AX=3762H,CL=5,执行“SHR AX,CL”后,则AX的值为:
A、0376HB、01BBHC、01BBD、0376
正确答案: B 我的答案:B
- shr逻辑右移,高位补零。仅仅只有算术右移才是,高位不变


- CL控制移位的次数,shr ax ,cl:将ax逻辑右移cl位
- 3762H,转成二进制
- 下面是十进制

- 下面是十六进制

- 0001 1011 1011:右移五位,高位补零,总共五位
第三题
设某数据段的定义如下:
DATA SEGMENTORG 20HNUM1 = 8NUM2 = NUM1 + 10HDA1 DB 'PC'DB 0AH, 0DHCOUNT EQU $ -DA1DATA ENDS
上述数据段定义后,COUNT的值为:
A、1
B、2
C、3
D、4
正确答案: D 我的答案:D
- 分析:
- org的作用:

- org的作用:
- $的作用:获取当前的地址

- count指令所所在的地址,减去data1的指令所在的地址
第四题
4、下列指令中错误的是:
A、PUSH WORD PTR 20[BX+SI-2]B、ADD BX,ODDSET AC、LEA BX,4[BX]D、MOV BYTE PTR[BX], 1000
正确答案: D 我的答案:C
- 分析
- A:push都是以字为单位的,先减2,再入栈

- LEA:将有效的地址,送到对应的寄存器中
- 将的BX + DS + 4 对应的存储单位,送到BX存储器中

- mov的操作:常见错误之数据类型不匹配
- 输入的1000,是字型数据,总共有4个十六位数,对应的是字型的数据,不是字节型的数据。这里不用加上byte 就对了

第五题
5、下列程序段中,有数据为‘3000H’的字存储单元的个数为:
ORG 30HA1 DB 0, '0', 30H, 0, 30HDW A1A、1B、2C、3D、4
正确答案: B 我的答案:B
- org制定了的一开始的存储的地址是30H,就是变量名A1的地址就是30H
- dw A1,就是给A1的值分配一个字型的存储空间,值为A1的地址
- dw A1就是:00 30 ,保存在对应的内存上就是30 00
- 数据如下:00 30 30 00 30 30 00
- 所以选B,运行结果如下

- 实际运行效果如下

第6题
6
假设(SS)=2250H,(SP)=0140H,如果在堆栈中存入3哥数据,则栈顶的物理地址为:
A、22636HB、22640HC、2263AHD、2263CH
正确答案: C 我的答案:C
- 分析
- 关于堆栈,存入数据,先减2,在压入数据;取出数据,先取出数据,再加2。

- 注意使用,16进制去表示0140H,退一位是16,不是10

第七题
7
用debug查看内存的结果如下:
-D DS:00001871:0000 38 73 1F 73 00 00 00 00-00 00 00 00 00 00 00 001871:0010 B8 71 18 8E D8 A0 00 00-3A 06 01 00 73 03 A0 01
此时,CPU执行下列指令后:
MOV BX,0010HJMP DWORD PTR [BX]
CS的值为:
A、71B8HB、B871HC、8E18HD、188EH
正确答案: C 我的答案:C
- 分析,跳转双字,jmp命令
- cs对应的是高地址的内存,ip对应的是低地址的内存

第八题
如果数据存放在DI的内容为偏移地址的数据段中,设DS=3624H,DI=2200H,则此存储单元的物理地址为:
A、38440HB、58240HC、25624HD、5824H
正确答案: A 我的答案:A
- 分析

第9题
分析下列程序段执行后,AAA单元的内容是:
data segmentAAA dw 0BBB dw 0CCC dw 230,20,54data endscode segment...MOV BX, OFFSET CCCMOV AX, [BX]MOV BBB, AXMOV AX, 4[BX]ADD AX, BBBMOV AAA, AX....code ends
A、250
B、284
C、230
D、234
正确答案: B 我的答案:B
-
分析:
mov bx,offset ccc : ccc为0004,将ccc的偏移地址作为值赋值给bx
mov ax,[bx] : 将的ds:bx对应的单元的值赋给ax,ax = 230
mov bbb,ax :将ax的值传给bbb,则bbb为230
mov ax,4[bx] : 将的ds*10+bx + 4的存储单元的值给ax,ax为54
add ax,bbb : 最终的结果为ax+bbb为284 -
对于字型数据而言,下一个存储单元就是加2,不是加1,而且是从零开始的
第10题
下列指令序列执行以后,寄存器SI的内容为:
ARRAY DW 1234H, 5678H, 0ABCDHLDS SI,DWORD PTR ARRAY + 1
A、CD56H
B、56CDH
C、7812H
D、1278H
- 分析
- ARRAY对应的内存空间为:34 12 78 56 CD AB
- 将对应的地址指向的内存单元的数据,送给指定寄存器和默认的段寄存器

- ds对应的是高位:CD 56
- SI对应的是低位:78 12
第11题
循环指令“LOOP”的操作是:
A、CX先减1,然后再判断CX,若CX=0则转,否则继续执行
B、CX先减1,然后再判断CX,若CX≠0则转,否则继续执行
C、先判断CX,若CX≠0则CX-1后转,否则继续执行
D、先判断CX,若CX≠0则转,否则CX-1后继续执行
正确答案: B 我的答案:C
- 分析

- 先减1,在进行相关的判定
第12题
下列语句序列执行以后,寄存器AH的值为:
X1 DB 41H, 42H, 10H DUP(1AH),?X2 DB 20H DUP(0), 10, 3 DUP(0)X3 DB X1, 10 DUP(0)....MOV AH, LENGTH X3
A、1
B、20H
C、2
D、10H
- 分析:
- length的使用,见看不清话,这里有源地址

- 如果是下述的组合就是1,

- 并不会计算x1的单元
第13题
下列语句在存储器中为变量分配的字节数是:
AD3 DD 100 DUP(?)
A、100
B、200
C、300
D、400
- 分析:
- DD的使用:是双字,四个字节,

第14题
完成对CL寄存器的内容乘以4的正确操作是:
A、
ROL CL,1
ROL CL,1
B、
MUL 4
C、
SHL CL,1
SHL CL,1
D、
MOV CL,2
SHL CL,CL
正确答案: C 我的答案:C
- 分析

- 进行逻辑左移,移位进行乘除
第15题
设某数据段的定义如下:
DATA SEGMENTDA0 DW '18', 'M', 0AF0H, 20DATA ENDS
上述数据段定义后,DA0+6字节单元的内容为:
A、0AH
B、14H
C、20H
D、0F0H
正确答案: B 我的答案:D
- 分析
- 一个字符占用一个字节,‘18’占用两个字节,就是一个字
- 注意题目中给的是20,十进制,转成十六进制就是14H
- DA0是第一个字,DA0+2是第二个字,依次类推,是从零开始计算,每个字都是加2
第16题
下列语句执行后,寄存器BX的值为:
SS DB '41H,42H'MOV BX, WORD PTR SS + 3
A、4241H
B、4142H
C、342CH
D、2C34H
正确答案: C 我的答案:C
- 分析:
- 上述的字符串转成对应的ASCII码为:34H,31H,48H,2CH,34H,32H,48H
- ss+3第四个,第五个字节两个构成一个字
- 34 2C
第17题
下面各传送指令中,正确的是:
A、MOV CS, AX
B、MOV DAT[BX][SI], ES:AX
C、MOV AL, DAT[BX][SI]
D、MOV BX, OFFSET DAT[SI]
正确答案: C 我的答案:D
-
分析
-
关于mov指令的使用
-

-
A:CS不能直接赋值
-
B:没有经过CPU,直接是内存对内存的操作
-
C和D,感觉应该都对,分辨不出来


offset不能在加上[si]
第18题
DA1 DW‘AB’,‘CD’,‘EF’,‘GH’┇MOV AX,DA1+3
指令执行后AX中的内容是:
A、‘EF’
B、‘CD’
C、‘BC’
D、‘FC’
正确答案: D 我的答案:D
- 分析:DA1的内存为:‘B’ ‘A’ ‘D’ ‘C’ ‘F’ ‘E’ ‘H’ ‘G’
- 从DA1开始,向后第四个,C,并且向后过度两个,就是FC
第19题
下列语句中有数据‘0102H’的字存储单元个数为:
DB 10H DUP(1, 2 DUP(2))
A、12
B、13
C、14
D、15
正确答案: D 我的答案:D
- 分析:
- DB的数据:1 2 2 1 2 2 1 2 2 。。。
- 1 2 2总共重复16次
第20题
下列传送指令中正确的是:
A、MOV [DI], [SI]B、MOV AL, BXC、MOV [DX+DI], ALD、MOV WORD PTR [BX], 0100H
正确答案: D 我的答案:D
-
分析:
-
A没有经过CPU,直接是内存堆内存的操作
-
B的数据大小不匹配,是字型数据和字节型数据
-
C:没有DX加DI的用法

-
D:自行数据对字型数据
-
如有不妥,留言或者加扣扣651378276
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
