h3000:汇编的习题

第一题
  • 在下列符号定义语句,ABC的值为:

    AA DB 1, 2, 3, ‘123’

    BB DB 0

    ABC EQU BB - AA

    A、-1 B、9CH C、0CH D、6

正确答案: D 我的答案:A

  • 分析:
    • 变量名等价于地址,这里是变量相减,就是地址相减。
    • 一个字符表示占用一个字节,‘123’占用了三个字节
    • EQU:等值操作,就是=

第二题
  • 设AX=3762H,CL=5,执行“SHR AX,CL”后,则AX的值为:

    A、0376H B、01BBH C、01BB D、0376

正确答案: B 我的答案:B

  • shr逻辑右移,高位补零。仅仅只有算术右移才是,高位不变


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

  • 下面是十六进制

  • 0001 1011 1011:右移五位,高位补零,总共五位
第三题

设某数据段的定义如下:

DATA SEGMENT ORG 20HNUM1 = 8NUM2 = NUM1 + 10HDA1 DB 'PC' DB 0AH, 0DH COUNT EQU $ -DA1DATA ENDS

上述数据段定义后,COUNT的值为:

A、1

B、2

C、3

D、4

正确答案: D 我的答案:D

  • 分析:
    • 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, 30H DW 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 segment AAA dw 0 BBB dw 0 CCC dw 230,20,54data endscode segment ... MOV BX, OFFSET CCC MOV AX, [BX] MOV BBB, AX MOV AX, 4[BX] ADD AX, BBB MOV 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 SEGMENT DA0 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

相关推荐

相关文章