2010级非电专业《计算机硬件技术基础》作业2班级学号姓名一、单项选择题1.在数据传送指令执行过程中,不能直接与立即数进行传送的是(2)。①通用寄存器②段寄存器③存储器④通用寄存器和存储器2.下列指令中,可以让IF标志为1的是(2)。①STD②STI③CLD④CLICLC、STC对应CF,CLD、STD对应DF,CLI、STI对应IF,清标志置0,置标志取13.在下列伪指令中定义4字节变量的是(1)。①DD②DW③DB④DT第一个D是Define的意思,B-byte,W-word,D-doubleword,DQ-8字节,DT-10字节4.下列指令中不属于逻辑运算指令的是(2)。①XOR②CWD③NOT④ORCWD有符号字扩展指令,属于算术运算指令5.寄存器间接寻址方式中,操作数在(3)中。①通用寄存器②堆栈③主存单元④段寄存器6.80x86的(SS)=1060H,(SP)=0010H,(AX)=1234H,当执行一条PUSHAX指令时,1234H存放的实际地址是(3)。①(10610H)=12H(10611H)=34H②(10610H)=34H(10611H)=12H③(1060EH)=12H(1060FH)=34H④(1060EH)=34H(1060FH)=12HSP初始地址为10600H+0010H=10610H,执行后变为10610H-2H=1060EH,先放低字节后放高字节7.若(DS)=1000H,(SS)=2000H,(BX)=1000H,MOVDI,[BX+37H]指令中源操作数的物理地址应是(4)。①3037H②2037H③21037H④11037HBX对应DS,地址为(DS)*16+(BX)+37H=11037H8.下列指令中,执行后影响标志位的(3)①XLAT②PUSH③ADD④XCHG二、判断说明题(判断正误,正确的在题后括号内打“√”,错误的打“×”,并说明原因。)1.JMPFARPTRNEXT√2.MUL9×3.CMP[BX],[SI]×4.XORBX,AL×5.OUT23H,AL×6.MOVDS,DX√7.POPCS×8.MOVBYTEPTR[BP],AL×9.ADD4,AL×10.INAX,DX√11.PUSHCH√12.OUT255H,AL×13.CS和IP都不能作目的操作数。√14.某操作数如包含在指令中,则在指令中采用直接寻址方式。×三、简答题1.若要将键盘键入的‘9’这个字符存入BL寄存器中,利用DOS系统功能调用怎样实现?写出有关的程序段。MOVAH,01HINT21H(以上2条执行后AL中为输入字符的ASCII码)MOVBL,AL2.若要向屏幕上输出“Whoareyou?”这个字符串,利用DOS系统功能调用怎样实现?写出有关的程序段。…BUFDB'Whoareyou?','$'…MOVAX,DATAMOVDS,AX…LEADX,BUF(或者MOVDX,OFFSETBUF)MOVAH,09HINT21H3.数据段定义如下:4.数据段定义如下:NUMDB65H,20,35H,47DATADB2DUP(‘A’,66H,18H,3DUP(11H,55H))NUM1DW‘AB’,12H,7896H,请画出DATA存储区的数据分配图,并计算该区域所占用的单元数。请画出内存分配图。题目3:65H14H(对应20)35H2FH(对应47)42H(B的ASCII码,01000010)41H(A的ASCII码,01000001)12H00H96H78H题目4:画图略,占用存储单元数为2*(1+1+1+3*(1+1))=18四、分析题1.阅读下面的程序段,当N=0AH时,该程序段执行后,RUT单元的值为多少?请分析该程序段所实现的功能。TABDB‘0123456789ABCDEF’……LEABX,TABBX存放该表的首地址MOVAL,NAL存放表内偏移量,这里取N=0AH,故偏移量为0AHXLAT执行查表指令后,AL中存放转换结果,即(AL)=‘A’的ASCII码MOVRUT,ALRUT=AL=41H2.阅读下列程序段,请分析总结该程序段的功能。MOVAX,DATAMOVDS,AXLEABX,N;N为某数据区首地址MOVCX,16MOVDL,00HAGAIN:CMP[BX],0将数据区的数据逐个与0比较JNZNEXT1非零跳转到NEXT1INCDL若等于0,计数,放在DL中NEXT1:INCBXDECCX只统计16个数JNZAGAINMOVNUB,DLHLT因此,整个程序是统计数据区前16个数据中为0的个数,放在NUB中3.阅读下面程序段,请为每一条指令加上注释,并总结其功能4.写出下列程序段的功能MOVAL,N将N放入ALLP:MOVAH,1ANDN,0FHN的高4位置0INT21HMOVBL,N置0后N放入BLCMPAL,‘Y’SHRAL,4右移4位JZYESMOVBH,ALCMPAL,‘N’将N的高四位、低四位分别放入BH、BL中JZNOJMPLP等待键盘输入,如果输入Y,执行YES;如果输入N,执行NO五、程序设计题1.试编程实现:将50~0依次存放到以逻辑地址为1000H∶2000H起始的一片连续存储单元中。MOVAX,1000HMOVDS,AXMOVSI,2000HMOVCX,51AGAIN:MOV[SI],CXDEC[SI]INCSIDECCXJNZAGAIN2.试编程实现:找出I、J、K三个无符号8位二进制数中的最大数,并存放于MAX单元。略,参考实验指导书p30页例程3.以下程序为统计从STRING单元开始存放的100个字节型带符号数中正数的个数,请完成该程序段的填空。LEASI,STRINGMOVCX,①100MOVDL,0CMPNXT:MOVAL,[SI]②CMPAL,0JSNEGINCDLNEG:③INCSILOOPCMPNXT