《汇编语言程序设计》的试验考试比较灵活,考生应全面细致的掌握基本理论,充分理解每一条指令,并且能独立编制程序。
北京大学的考试环境:
(1)操作系统:DOS6.22
(2)文本编辑器:EDIT.EXE
(3)汇编程序:MASM.EXE
(4)连接程序:LINK.EXE
(5)调试程序:DEBUG.COM
考试的主要内容分三大部分:输入、输出、数制转换
一、显示字符:“HELLOGOODMORNING!”
DATASEGMENT
NOTEDB‘HELLOGOODMORING!’‘$’
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA
BEGIN:MOVAX,DATA
MOVDS,AX
MOVDX,OFFSETNOTE
MOVAH,09H
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDBEGIN
二、显示2位BCD码
DATASEGMENT
NUMDB52
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA
START:MOVAX,DATA
MOVDS,AX
MOVBL,NUM
MOVCH,2
RO:MOVCL,4
ROLBL,CL
MOVDL,BL
ANDDL,0FH
ADDDL,30H
MOVAH,2
INT21H
DECCH
JNERO
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
三、显示4位十六进制
DATASEGMENT
NUMDW3ATC
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA
START:MOVAX,DATA
MOVDS,AX
MOVBX,NUM
MOVCH,4
RO:MOVCL,4
ROLBX,CL
MOVDL,BL
ANDDL,OFH
CMPDL,9
JLEADDR
ADDDL,7
ADDR:ADDDL,30H
MOVAH,2
INT21H
DECCH
JNERO
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
四、两个2位十进制数相加,显示和
CODESEGMENT
ASSUMECS:CODE
START:MOVAL,36
ADDAL,48
DAA
MOVCH,2
RO:MOVCL,4
ROLAL,CL
MOVDL,AL
ADDDL,OFH
ADDDL,30H
MOVAH,2
INT21H
DECCH
JNERO
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
五、两个4位十六进制数相加,显示和
DATASEGMENT
NUMDW3A54,648B
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA
START:MOVAX,DATA
MOVDS,AX
MOVBX,NUM
ADDBX,NUM+2
MOVCH,4
RO:MOVCL,4
ROLBX,CL
MOVDL,BL
ANDDL,0FH
CMPDL,9
JLEADDR
ADDDL,7
ADDR:ADDDL,30H
MOVAH,2
INT21H
DECCH
JNEROTATE
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
说明:(1)以上只是最基础的程序,希望大家一定要掌握,并能举一反三,考试是综合各方面内容的,其程序不会少于100行
(2)汇编考题范围广,我们不能像《微型计算机及其接口》一样,死抱8255和8253就行,还希望大家能在考前多练习编程才可以
(3)常用的DOS系统功能调用一定要熟悉,尤其是输入、输出方面的(教科书P168~P172)
试题举例:(1)从键盘输入2个十进制数,其和用二进制显示,其差用八进制显示,其乘积用十六进制显示
(2)从键盘输入1个字符串,统计其中的字符。大写字母个数用二进制显示,小写字母个数用八进制显示,数字的个数用十进制显示,其他字符用十六进制显示
附:DEBUG的基本用法
DEBUG是个调试软件,能比较方便的找到错误,其功能非常强大,使用也比较复杂。我们只介绍简单的用法(不会用DEBUG调试,并不影响考试)
(1)-a汇编器,从100H开始
(2)-g执行,-g[地址断点],执行到[地址断点]结束
(3)-a100改100H处程序
(4)-e101改101H地址处的内容
(5)-d100显示内存中的内容;显示机器指令
(6)-u100机器指令〉汇编指令
(7)-q退出