还剩5页未读,继续阅读
文本内容:
汇编语言A复习题
一、单选题(每小题3分,共45分).十进制数119转换为二进制数是多少(B).十进制数211转换为十六进制数是多少(A).表示过程定义结束的伪指令是(A)
7.执行下列指令语句,则AX=(C)oMOVAL9511CBW
二、简答题(每小题10分,共40分).设DS=1000HES=2000HSS=3500HSI=OOAOHDI=0024BX=0100HBP=0200H数据段中VAL的偏移地址为0030H试说明下列源操作数字段的寻址方式是什么?物理地址是什么?MOVAX[100H]MOVAXES:[BX]MOVAX[BP]MOVAX[BX+10]MOVAX[BX+DI+VAL]答
(1)直接寻址方式,物理地址二10100H
(2)寄存器间接寻址方式,物理地址二20100H
(3)寄存器间接寻址方式,物理地址二35200H
(4)寄存器相对寻址方式,物理地址二10110H
(5)相对基址变址寻址方式,物理地址二10154H
2.通过示意图说明下列数据定义程序段从0000H开始对内存单元的分配情况(写出X和Y的地址,并画出每个单元中所存内容,己知a的ASCII码为61HA的ASCII码为41Hdatasegment;数据段Xdb920Hdb2duplOOYdbaBCdataends答X=OOOOHY=0005H从X开始依次存放39H20H64H64H—61H42H43H
3.写出下列程序段的作用testdxOOOFhjzzeromovax1jmpendlzero:movax0endlexit0答判断DX低四位是否为全为04分,全为0则AX=03分,否则AX=13分答:1AL=66H2CF=03AH=75H4ZF=05CF=0
三、编程题(15分)编写程序记录BX中1的个数答.modeIsmaII.stack.datanumdb
0.code.startupmovbx82hxoraIaIagain:cmpbx0;testbxOffffhjznextshIbx1jncagainincaIjmpagainnext:movnumaI.exit0end答案不唯一,对每一位是否为1的处理逻辑正确得4分,对位数的移动逻辑正确得4分格式、语法正确得2分,相同错误不重复扣分汇编语言B复习题
一、单选题每小题3分,共45分.十进制数211转换为二进制数是多少AA.11010011B.
01110111.十进制数131转换为十六进制数是多少A.D3HB.77H..有符号数-125转换为二进制数是多少A.11010011B.
01110111.用REPESCASB指令对字符串进行扫描,如CX0时,扫描结束,那么表示DA.在字符串中遇上第一个AL中指定的字符B.在字符串中有一个AL中指定的字符C.在字符串中有一个不是AL中指定的字符D.在字符串中遇上第一个不是AL中指定的字符.设(SS)=338AH(SP)=450H执行PUSHBX和PUSHF两条指令后,堆栈顶部的物理地址是(A)A.33CECHB.33CF2HC.33CF4HD.33CE8H.指令SCASB操作数的段地址一定在(C)寄存器中A.CSB.DSC.ESD.SS.下列指令中有语法错误的是(D)A.PUSHAXB.PUSH[20H+SI+BX]C.PUSHCSD.POPCS.DAIDW,ABCDEF,GH执行指令MOVAXDA1+3后AX中的内容是(D)A.EFB.CDC.BCD.FC.有语句COUNTEQU256下列叙述中,正确的是CA.COUNT是变量B.COUNT占用一个字节存储单元C.COUNT是符号常数D.COUNT占用一个字存储单元
二、简答题每小题10分,共40分.分别编写一条指令完成如下功能每题2分,共计10分1把AX寄存器和DX寄存器的内容相加,结果存入DX寄存器2用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与DL寄存器的内容相加,并把结果送到DL中3用BX和位移量0C5H的寄存器相对寻址方式把存储器中的一个字和CX寄存器的内容相加,并把结果送回存储器中4把9542H存入地址为2000H的存储单元中5从地址为3FH的端口读入一个字数据答1ADDDXAXADDDL[BX+SI]ADD[BX+0C5H]CXMOVWORDPTR[2000H]9542HINAX3FH
2.已知DS=1000HBX=0200HSI=0002H存储单元[10200H]〜[10205H]依次存放12H、34H、56H、78H、4CH、B7H说明下列每条指令执行后AX寄存器的内容每题2分,共计10分MOVAX1200HMOVAXBXMOVAX[BX]MOVAX[BX+SI]MOVAX[BX+SI+0002H]
3.阅读下列程序段,写出语句的注释以及程序执行后DA2各字节中的数据注释5分,结果5分,共计10分DAIDBABCDEFGHIDA2DB9DUP0IIIMOVBXDSMOVESBXLEASIDAILEADIDA2MOVCX9CLDLOP LODSBSUBAL10HSTOSBLOOPLOP答程序执行后DA2各字节中的数据123456789或31H〜39HmovAX14jmpOK5movAX0时,使AX=O;否则使AX=1(每空2分,共计10分)
三、编程题(15分)编写程序计算字符串‘34$DBD$798$中的$的个数(写出完整的程序格式)答.modeIsmaII.datastringdb34$DBD$798$countequ$-string;count=$-string.stack.code.startupmovexcountIeasistringxorbxbxmovaI$stre:empaI[si]jnznextincbxnext:incsiloopstre.exit0End答⑴1200H20200H33412H47856H5B74CH
4.补充代码,实现当BX高4位全为(testBX
①jz
②③④zero
⑤OK.exit0答1OfOOOh2zero3。