《汇编语言程序设计》的试验考试比较灵活,考生应全面细致的掌握基本理论,充分理解每一条指令,并且能独立编制程序。
北京大学的考试环境:
(1)操作系统:DOS6.22
(2)文本编辑器:EDIT.EXE
(3)汇编程序:MASM.EXE
(4)连接程序:LINK.EXE
(5)调试程序:DEBUG.COM
考试的主要内容分三大部分:输入、输出、数制转换
一、显示字符:“HELLO GOOD MORNING!”
DATA SEGMENT
NOTE DB‘HELLO GOOD MORING!’,‘?/p
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
BEGIN: MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET NOTE
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END BEGIN
二、显示2位十六进制
DATA SEGMENT
NUM DB 52H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV BL,NUM
MOV CH,2
RO: MOV CL,4
ROL BL,CL
MOV DL,BL
AND DL,0FH
ADD DL,30H
MOV AH,2
INT 21H
DEC CH
JNE RO
MOV AH,4CH
INT 21H
CODE ENDS
END START
三、显示4位十六进制
DATA SEGMENT
NUM DW 3AFCH
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV BX,NUM
MOV CH,4
RO: MOV CL,4
ROL BX,CL
MOV DL,BL
AND DL,0FH
CMP DL,9
JLE ADDR
ADD DL,7
ADDR: ADD DL,30H
MOV AH,2
INT 21H
DEC CH
JNE RO
MOV AH,4CH
INT 21H
CODE ENDS
END START
四、两个2位数相加,显示和(采用压缩的BCD码调整)
CODE SEGMENT
ASSUME CS:CODE
START: MOV AL,36H
ADD AL,48H
DAA
MOV BL,AL
MOV CH,2
RO: MOV CL,4
ROL BL,CL
MOV DL,BL
AND DL,0FH
ADD DL,30H
MOV AH,2
INT 21H
DEC CH
JNE RO
MOV AH,4CH
INT 21H
CODE ENDS
END START
五、两个4位十六进制数相加,显示和
DATA SEGMENT
NUM DW 3A54H,648BH
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV BX,NUM
ADD BX,NUM+2
MOV CH,4
RO: MOV CL,4
ROL BX,CL
MOV DL,BL
AND DL,0FH
CMP DL,9
JLE ADDR
ADD DL,7
ADDR: ADD DL,30H
MOV AH,2
INT 21H
DEC CH
JNE RO
MOV AH,4CH
INT 21H
CODE ENDS
END START
说明:
(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退出