h3000:汇编的习题 2024-04-29 22:11:28 0 0 第一题 在下列符号定义语句,ABC的值为: AA DB 1, 2, 3, ‘123’ BB DB 0 ABC EQU BB - AAA、-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 我的答案:Bshr逻辑右移,高位补零。仅仅只有算术右移才是,高位不变 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 我的答案:Borg制定了的一开始的存储的地址是30H,就是变量名A1的地址就是30Hdw 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 56SI对应的是低位: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,十进制,转成十六进制就是14HDA0是第一个字,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,48Hss+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 收藏(0)