东北大学19年9月考试《汇编语言程序设计》考核作业A卷
东北大学19年9月考试《汇编语言程序设计》考核作业
东北大学继续教育学院
汇编语言程序设计试卷(作业考核线上)A卷
学习中心:院校学号:姓名:
(共6页)
总分题号一二三四五六
得分
一、单项选择题(从四个备选答案中选出一个正确的答案填在题干的括号内)(20分)
()1.指令MOVAL,的源操作数的寻址方式为?
A.基址寻址B.寄存器间接寻址
C.变址寻址D.基址变址寻址
()2.确定下列哪些数据在汇编语言中的表示是错误的?
A.2AND3*5B.2+10B
C.AX+3D.10HSHL2
()3.若栈顶指针SP的值为100H,当执行完指令CALLAX后,SP的值为?
A.00FCHB.0098H
C.00FEHD.0102H
()4.已知在寄存器AX和BX中分别存放着一个带符号数据,在满足条件AX≥BX时转到标号OK去执行,能实现该功能的程序段是?
A.CMPAXBXB.CMPAXBX
JAEOKJNBOK
C.CMPAXBXD.CMPAXBX
JGOKJGEOK
()5.下列程序段在语法上是正确的是?
A.X1DB‘ABCD’B.X1DW‘ABCD’
C.X1DD‘ABCD’D.X1DB1234H
()6.已知AL=87H,BL=34H则指令ADDAL,BL执行后,OF和CF的值分别为?
A.0,0B.0,1
C.1,0D.1,1
()7.已知AL,BX中各存放一个无符号数,计算AL和BX的乘积用下述哪个程序段?
A.MULBXB.IMULBX
C.CBWD.XORAH,AH
MULBXMULBL
()8.NEXT是程序中某指令语句标号,下述哪个程序段不能实现转移到NEXT语句执行。
A.JMPNEXTB.MOVBX,OFFSETNEXT
JMPBX
C.MOVBX,NEXTD.LEAAX,NEXT
JMPBXJMPAX
()9.初始化8259A时,ICW2的值为18H,当IR3端有中断请求时,8259A送出的中断方式码是什么?
A.10HB.13HC.18HD.1BH?
()10.在两个8259A级联的中断系统中,从8259A连接在主8259A的IR5上,主8259A和从8259A的ICW3应设置为多少?
A.20H05HB.10H05HC.05H05HD.20H20H?
二、判断题(判断每题正误,对的在题后括号内划“√”,错的划“”)。(10分)
1.MOVDS2000H()6.LEABXAX()
2.MOVSI,[SI]()7.OUTDXAL()
3.INAL200H()8.JS()
4.PUSHAL()9.LOOPAX()
5.XCHGAX1234H()10.CALLAX()
三、填空题。(20分)
1.已知:BX=100H,BP=200H,SI=300H,DS=1000H,SS=2000H,CS=3000H,指出下述指令中存储器操作数的有效地址及实际地址。(6分)
指令有效地址实际地址
MOVAL,CS
MOVAL,
MOV,AL
2.写出下述两条数据定义伪指令语句经过汇编后的内存分配情况。(4分)
DATA1DB32,‘XY’
DATA2DW32,‘XY’
DATA1DATA2
3.已知部分中断向量表的内容给出如下则方式码为13H的中断服务程序的入口偏移地址为(),段地址为()。(4分)
C>DEBUG
d00
000000009E0FC900650470001600C10865040000
000000106504700054FF00F0008000F06FEF00F0
00000020000000C82800C1086FEF00F06FEF00F0
000000306FEF00F06FEF00F09A00C10865047000
00000040070070C84DF800F041F800F0972558FD
0000005039E700F040022D062D047000280A7606
00000060A4E700F02F0082096EFE00F004067606
000000701D0000C8A4F000F022050000C65700C0
4.依据下述子程序说明文件把子程序补充完整。(6分)
(1)子程序名:MSUB
(2)子程序功能:求两个多字节数据之差
(3)入口条件:两个数据的低字节地址分别在SI和DI中,数据长度在CL中
(4)出口条件:差的低字节地址在SI中
(5)受影响的寄存器:F
MSUBPROCNEAR
PUSHAX
PUSHDI
PUSHSI
PUSHCX
CLC
AGAIN:MOVAL,
()
()
()
DECCL
JNZAGAIN
POPCX
POPSI
POPDI
POPAX
RET
MSUBENDP
四、改错题。(10分)
下列程序有错请将它们找出并改正过来。已知程序欲完成的功能是从两个带符号数中选出较大者送入MAX单元若二者相同将MAX清0。
要求:不必抄题,直接在试题上修改。在错误的部分下面划一条线,然后在本行的后面给出正确的答案即可。
1.SEGASEGMENT
4.DAXDBA0H
8.DAYDB1000H
12.MAXDB0
15.SEGAENDS
18.CSEGSEGMENT
21.ASSUMECSCSEGDSSEGA
25.BEGIN:MOVDS,SEGA
27.MOVAL,DAX
29.CMPALDAY
33.JAXGY
35.JZZERO
40.MOVALDAY
43.XGYMOVMAXAL
47.ZEROMOVAL,4CH
49.INT21
50.CSEGEND
56.ENDSTART
五、简答题(25分):用尽可能少的指令编写完成下列功能的程序段
1.已知DX和AX联合存放一个32位整数(DX存放高16位),将该数据逻辑左移一位。
2.将AL中的字符配成奇校验码。
3.将寄存器AL的第i位状态取反,其它位状态不允许改变,已知i在CL中。
4.已知AL,BL中各存放一个带符号数,如果两数同正,则将AH清0;如果两数同负,则将AH置1;否则将AH置全1。
5.已知中断服务程序的入口地址为SEVER,对应的中断方式码为10H,写出将其入口地址写入中断向量表的程序段。
六、程序设计题。(15分)
已知一组带符号字节数据存放在内存DATA开始的连续单元中,数据个数在CNT单元存放。编制程序求出该组数据的平均值并将其存入AVE单元。
页:
[1]