江苏省南京市中考《政治》试题及答案Word格式文档下载.docx
《江苏省南京市中考《政治》试题及答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《江苏省南京市中考《政治》试题及答案Word格式文档下载.docx(19页珍藏版)》请在冰点文库上搜索。
D、OUTDX,1234H
8.循环控制指令LOOPNZ/LOOPNE继续执行循环的条件是(B)
A、CX≠0且ZF=1B、CX≠0且ZF=0
C、CX≠0或ZF=1D、CX≠0或ZF=0
9.8088/8086存储器分段,每个段不超过(D)
A、64K个字B、32K个字节C、1M个字节D、64K个字节
10.表示过程定义结束的伪指令是(A)
A、ENDPB、ENDSC、ENDD、ENDM
11.用来存放下一条将要执行的指令代码段地址的段寄存器是(D)
A、SPB、DSC、ESD、CS
12.假定(SS)=1000H,(SP)=0100H,(AX)=5609H,执行指令PUSHAX后,存放数据
56H的物理地址是(D)
A、10102HB、10101HC、100FEHD、100FFH
13.执行“SUBAX,[BP][DI]”指令,取源操作数时,使用的物理地址表达式是(A)
A、16*SS+BP+DIB、16*ES+BP+DI
C、16*DS+BP+DID、16*CS+BP+DI
14.设AX中有一带符号数8520H,执行“SARAX,1”指令后,AX中的值是(C)
A、4290HB、0A40HC、0C290HD、0C260H
15.设(BX)=1234H,(DS)=2000H,(21234H)=5678H,则指令“LEASI,[BX]”执行后的结果是:
(B)
A、SI=5678HB、SI=1234HC、SI=2000HD、SI=3234H
16.测试BL中的数是否为负数,若为负数则转移至AA1处,横线处的指令应为(A)
TESTBL,80H
AA1
A、JNEB、JZC、JCD、JNC
17.设DF=0,(SI)=20H,(CX)=10,执行“REPLODSW”指令后,SI中的内容是(C)
A、20hB、30HC、34HD、40H
18.在程序执行过程中,IP寄存器中始终保存的是(B)
A、上一条指令的首地址B、下一条指令的首地址
C、正在执行指令的首地址D、需计算有效地址后才能确定地址
19.设SP初值为2000H,执行指令“POPAX”后,SP的值是(A)
A、2002HB、1998HC、1FFFHD、1FFEH
20.若AX=3500H,CX=56B8H,当ANDAX,CX指令执行后,AX=(A)
A、1400HB、77F8HC、0000HD、0FFFFH
21.汇编源程序时,出现语法错误的语句是(A)
A、MOVDS,1200HB、MOVAX,[BP+DI]
C、MOV[BX],BXD、MOVES,AX
22.将数据1234H存放在存储单元中的伪指令是(C)
A、DATA1DW3412HB、DATA1EQU1234H
C、DATA1DB34H,12HD、DATA1DB34H,00H,12H,00H
23.下面指令执行后,可能改变AL寄存器内容的指令是(D)
A、TESTAL,02HB、ORAL,AL
C、CMPAL,BLD、ANDAL,BL
24.操作数地址存放在寄存器的寻址方式称为(B)
A、立即寻址B、寄存器间接寻址C、直接寻址D、寄存器寻址
25.用户为了解决自己的问题,用汇编语言所编写的程序,称为(B)
A、汇编程序B、汇编语言程序C、可执行程序D、目标程序
26.用DOS功能调用时,子功能调用的编号应放在(C)
A、ALB、AXC、AHD、任意指定
27.提供串指令中目的操作数地址的是(C)
A、SS:
[BP]B、DS:
[SI]C、ES:
[DI]D、CS:
[IP]
28.在寄存器间接寻址方式下,能够提供有效地址的寄存器有(B)
A、AX,BX,CX,DXB、BX,BP,SI,DI
C、SP,IP,BP,DXD、CS,DS,ES,SS
29.已知某操作数的物理地址是2117AH,则它的段地址和偏移地址可能是(A)
A、2025∶0F2AB、2108∶00EAC、2000∶017AD、2100∶117A
30.中断向量表中的每个中断向量所占内存空间为:
A、2个字节B、4个字节C、8个字节D、依该中断子程序的大小而定
二、填空(30题)
1.在用直接寻址方式寻址操作数时,系统对段地址的默认值在段寄存器DS中。
3.与指令“NEGAX”功能等效的两条指令依次是NOTAX和INCAX。
4.语句“VARDB3DUP(3,3DUP(3))”经过汇编后应分配12个字节单元。
5.指令“MOVAX,SEGVAR”的执行,是把变量VAR的段地址送到AX中。
6.设(DS)=1000H,(ES)=2000H,(SS)=3000H,(BP)=4000H。
计算下列各指令中源操作数的物理地址:
MOVAX,[1000H]物理地址11000H
MOVAX,ES:
[BP]物理地址24000H
7.变量和标号均具有三种属性,即:
段属性、偏移属性、类型属性。
8.在做乘法运算时,如果是做字运算,乘积放在DX和AX两个寄存器中,做除法运算时,若做字节运算,余数放在AH中,商放在AL中。
9.用以访问存储器操作的地址表达式中,只要出现BP寄存器,系统就默认以段寄存
器SS的内容作为存储器操作数的段地址。
10.在数据段或代码段的最开始,常用伪指令“ORGn”来定义本段的偏移地址初值,该初值的范围是0000H~FFFFH。
11.指令“CWD”能实现对某寄存器中内容进行扩展,该寄存器是:
AX。
12.8088/8086CPU能寻址的最大存储空间为1MB,因此CPU的地址总线是20条。
13.在应用串处理指令MOVSB时,源串首地址存放在寄存器SI中,目的串首地址存放在寄存器DI中,并且目的串必须在附加段中,执行串处理指令时,用方向标志位DF控制地址自动增减,数据串的长度存放在寄存器CX中。
14.程序状态字PSW中的ZF位,当结果为0时,ZF=1,结果为1时,ZF=0。
15.十六进制数0D6H,当把它看作无符号数时,它表示的十进制正数为214,当把它看作带符号数时,它表示的十进制负数为-42。
16.IBMPC机中用来存放段地址的段寄存器有四个:
CS、DS、SS、ES。
三、判断题(15题)
1.SHLAL,2(错)
2.INC2(错)
3.ADDBX,1(对)
4.MOV[SI][DI],BX(对)
5.SUBBX,CL(错)
6.OUT34H,AL(对)
7.INAL,0AH(对)
8.MOVCX,[SP](错)
9.MULAL(对)
10.SUBBX,BP(对)
11.MOVDS,SEGVARY(错)
12.MOVVARY[SI],ES:
BL(错)
13.CMPBLOCK,[100H](错)
14.宏调用时实元和哑元的个数可以不一致。
(对)
15.REPSTOSB(对)
四、写程序段(9题)
1.计算8*9,并将乘积送SI。
moval,8
movbl,9
mulbl
movsi,ax
2.计算35/6,商存于BL中,余数存于CL中。
movax,35
movbl,6
divbl
movcl,ah
3.输入一个字母,然后输出它的后继字母(不考虑输入字母是Z的情况)。
movah,01h
int21h
incal
movdl,al
movah,02h
4.从端口35H读入一个字节数据,将该数的第3位置1后(其余位不变),再写回端口
35H。
(说明:
最低位为第0位)
inal,35h
oral,08h
out35h,al
5.定义数据段NUM,数据段中的数据按下列要求依次存储:
(1)变量X,类型为字节,初值为17;
(2)数组变量M,类型为字,所占空间为100H个单元;
(3)变量MSG,存储字符串"
LUCKY"
。
NUMsegment
Xdb17
Mdw100hdup(?
)
MSGdb‘LUCKY’
NUMends
6.寄存器BX中存放着一个带符号数,求出其绝对值,结果还放在BX中。
cmpbx,0
jgL1
negbx
L1:
…
7.对存放在(DX,AX)中的双字数据作求补运算。
notdx
notax
addax,1
adcdx,0
8.计算5!
,结果存于寄存器SI中。
movcx,5
moval,1
movbl,1
incbl
loopL1
movsi,ax
9.定义一个名字为ADDXYZ的宏,实现WX+Y+Z。
(注:
所有数据均为字类型)
ADDXYZMACROX,Y,Z,W
movax,x
addax,y
addax,z
movw,ax
endm
五、写程序(9题)
1.从键盘输入一个字符串(长度不超过30),统计字符串中非数字的个数,并将统计的结果存入字单元COUNT中,用EXE格式实现。
datasegment
strdb30,?
30dup(?
countdb0
dataends
codesegment
assumecs:
code,ds:
data
mainprocfar
start:
pushds
movax,0
pushax
movax,data
movds,ax
leadx,str
movah,0ah
int21h
movcl,str+1
movch,0
movsi,2
L3:
cmpstr[si],30h
jaeL1
inccount
jmpL2
L1:
cmpstr[si],39h
jbeL2
L2:
incsi
loopL3
ret
mainendp
codeends
endstart
2.统计一个16位二进制数中1的个数,并将结果输出,用COM格式实现。
org100h
assumecs:
code
mainprocnear
movbx,0a39h
movsi,0
movcx,16
next:
shrbx,1
jncl1
incsi
l1:
loopnext
movdx,si
adddx,30h
cmpdl,3ah
jbl2
adddl,7
l2:
movax,4c00h
mainendp
3.从键盘输入两个一位十进制数,求它们的和,并将结果以十进制形式输出。
(只考虑和小于10的情况)
movah,01
movbl,al
movbh,al
subbx,3030h
addbl,bh
movdl,bl
adddl,30h
movah,02
4.从键盘输入一个十进制个位数,在屏幕上显示相应数量的该数。
例如,输入3,屏幕上将显示“333”。
movah,01h
movbl,al
subal,30h
cbw
movcx,ax
movah,02h
endmain
5.求100以内所有奇数的和,存于字变量X中。
xdw?
movbx,1
movcx,50
addax,bx
addbx,2
movx,ax
endstart
6.将BX中的数以二进制形式在屏幕上显示出来。
movbx,1234h
movcx,16
movdl,30h
shlbx,1
jncL2
incdl
L2:
movax,4c00h
int21h
7.字节数组X中存放着0~F共16个十六进制数,请将这些数以十六进制形式显示在屏幕上。
xdb0,1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh
movax,data
movds,ax
movdl,x[si]
cmpdl,39h
adddl,7
8.从包含10个无符号数的字节数组array中选出最小的一个数存于变量MIN中,并将该数以十进制形式显示出来。
arraydb45,67,75,82,90,29,80,26,63,59
mindb?
stacksegmentstack
dw10dup(?
stackends
data,ss:
stack
movcx,10
moval,255
movsi,0
movdi,0
cmpal,array[si]
moval,array[si]
movmin,al
movah,0
movcx,3
L3:
movbl,10
divbl
movdl,ah
pushdx
incdi
cmpax,0
jzL4
L4:
movcx,di
L5:
popdx
loopL5
9.设在起始地址为STRING的存储空间存放了一个字符串,统计字符串中字符“A”的个数,并将结果存放到RESULT字节单元中。
stringdb'
assembly'
lendw$-string
resultdb0
movcx,len
leasi,string
lodsb
cmpal,'
a'
jnzL2
incresult