2018.12.8 13:30-15:20 《汇编语言程序设计》考试
刚考完,回忆一下题目。
先总结一下:感觉考得还是蛮细的,主要自己复习时间也不多,全凭上学期学过一遍的记忆和笔记复习的。
一、选择题
-
有一题是八位补码表示二进制数,有 6 个 1 ,2 个 0,让你选真值最小的。感觉这题还是蛮有意思的,把四个选项都算一遍原码、反码、补码,就能找到答案啦。
-
然后有道原题,就是:一个有 128 个字的数据区,它的起始地址为 12ABH:00ABH,这个数据区最末一个字单元的物理地址是( )。
A. 12C5BH B.12B6BH C.12C59H D.12BFEH
仔细算算,然后注意是
字
,所以是 127 * 2 = 254,再转换成十六进制,进行地址相加,答案就出来了,是12C59H
。 -
还考了
与
、或
、非
、异或
。 -
考了一道我没复习到的知识点:常量、变量、物理地址什么的,记不清了。
-
还考了一道我不知道的:哪一个是做偏移地址的。我选的是
IP
。 -
哪一条指令执行后,Z 位不为0。当时在
CMP
和TEST
之间纠结,主要还是自己没记牢,最后改成了CMP
。我也不知道答案是哪一个。
二、填空题
- 第一道第二道又是进制转换,又想起了上学期这么简单的题目都做错了。这次记住了,BCD 码其实表示的是十进制数!
- 考了道除法指令:被除数放在 AX,8 位商放在 AL,8 位余数放在 AH。
- 最后一个填空题写得好慌:子程序的调用是用
XXX
完成的,宏指令的调用是用XXX
完成的。一开始写的是:CPU、汇编程序。后来改成了:CALL、PROC。交卷前几分钟又改成了:CPU、汇编程序。好像这次改对了???
三、简答题
- 冯·诺依曼体系:五大计算机硬件系统。(凉凉,发现写错了一个/绝望.jpg)
- 汇编程序生成可执行文件的步骤:编辑、汇编、链接。前两个步骤的后缀:.asm .obj(凉凉,发现又写错了)
- 写出寻址方式。
四、程序填空题
- 第一题又是考的存储方式。NUM1 是 DB 型,NUM2 是 DW 型,问 − N U M 1 , -NUM1, −NUM1,-NUM2 的值各是多少。还有 NUM1+4 是多少,NUM2+4 是多少。(又想起了上学期在这题上载了大跟头)经过考完试翻书,我发现 DB 型,‘AB’ 存的顺序是:先A再B,而 DW 型存的顺序是:先B后A。(又错了几个空)
- 又考了
AND
、XOR
、OR
。 - 还考了
PUSH
和POP
对SP
的影响。 - 程序填空比较坑的是,答案顺序是竖着写的,我有道题是横着写的答案,还好写完就注意到了。
五、编程题
找出 50 个有符号数中的 最大值
,并用 二进制
输出,输出格式为:MAX=XXXXXXXXB。
感觉这题不难,平时也有练习过。
几个注意点:
-
有符号数比较:CMP比较之后用的是 JL/JLE/JG/JGE。
-
二进制输出:循环左移 8 次,我用的是
SAL
。 -
输出
MAX=
:DOS 的09H
功能。我当时没想起来输出字符串的功能号,就用的输出字符的功能号02H
,一个个输出,应该也可以吧? -
要写出整个源程序:所以开头、结尾那些套话的代码也是要记住的。
六、一些感想
感觉汇编老师人还是蛮好的,知道我们转专业课程冲突,允许我们可以去上其他课。总共八周的课,我就去上了四节左右,其他都冲突了。
期末复习感觉还是不够扎实啊,一到考试,好多不确定的感觉真的不太好。
感觉这次还是考的不太好,希望能有 90+ 吧。