资源描述
专业技能考核复习资料——汇编语言
一、汇编语言程序的上机过程
1. 在计算机上运行汇编语言程序的步骤
1) 用编辑程序建立ASM源文件;
2) 用MASM程序把ASM文件转汇编成OBJ文件;
3) 用LINK程序把OBJ文件转连接成EXE文件;
4) 用DOS命令直接键入文件名就可执行该程序。
汇编语言程序的建立及汇编过程
2. 在计算机上执行的过程
1) 编写源程序
A. 用edit或记事本输入各段,并存储成源程序(保存在MASM目录下),扩展名为.asm。
2) 对源程序进行汇编、连接
A. 在DOS状态下,进入MASM目录
B. 输入MASM文件名(连同扩展名)
C. 在系统提示“object filename[.obj]”时,按下回车
D. 在系统提示“source listling[nul.lst]”时,按下回车
E. 在系统提示“cross-reference[nul.crf]”时,按下回车
F. 如果系统没有提示出错,那么编译过程完成,如果提示错误,使用edit打开源文件进行修改,然后重复上述步骤
G. 输入“link 文件名(不要扩展名)”
H. 在系统提示“run file[.exe]”时,按下回车
I. 在系统提示“list file[nul.map]”时,按下回车
J. 在系统提示“libraries[.lib]”时,按下回车
K. 没有提示错误,汇编过程就结束,产生.exe文件。如果出现“no strack segment”的错误警告,不用理会
3) 执行程序
A. 在DOS提示符下直接输入文件名运行
二、考核要求
1. 熟练掌握汇编程序的编辑、汇编、连接、执行过程
2. 熟练掌握顺序、分支、循环、子程序设计以及DOS功能调用
三、考核内容
1. 要求
编写一个有主程序和子程序结构的程序模块,完成下述功能:从键盘输入每位同学的姓名拼音,显示输出姓名拼音的首字母(无论大小写)及其在拼音姓名中的个数。
2. 参考程序
1) 定义数据段:
DATA SEGMENT
……
DATA ENDS
2) 定义代码段
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
3) 主程序
MAIN PROC FAR
START:
……
从键盘接收字符串
通过地址表传送变量地址
调用计算字符出现次数的子程序
调用显示子程序
RET
MAIN ENDP
4) 计算字符出现次数的子程序
COUNT PROC NEAR ; COUNT子程序
……
RET
COUNT ENDP
5) 显示子程序
DISPLAY PROC NEAR
调用显示回车和换行子程序
……
RET
DISPLAY ENDP
6) 显示回车和换行子程序
CRLF PROC NEAR
......
RET
CRLF ENDP
CODE ENDS
END START
无论大小写计算
DATA SEGMENT
S1 DB 'PLEASE INPUT YOUR NAME: $'
S2 DB 0DH,0AH,'TOTLE('
R1 DB ' ):'
N1 DB 0
N2 DB 0
DB '$'
BUFF DB 250,250 DUP(0)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
MAIN PROC FAR
START:
PUSH DS
XOR AX,AX;清零
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV AH,09;9号功能调用,显示字符
MOV DX,OFFSET S1
INT 21H
MOV AH,0AH;输入一段字符串到BUFF那个地址
MOV DX,OFFSET BUFF
INT 21H
MOV SI,OFFSET BUFF+2 ;实际内容
MOV AL,[SI]
MOV R1,AL
MOV BX,OFFSET BUFF+1 ;实际大小
MOV CL,[BX]
CALL COUNT
MOV AH,0
MOV AL,DL
CALL DISPLAY
RET
MAIN ENDP
COUNT PROC NEAR;COUNT子程序
MOV CH,0
MOV DL,0
P1: INC BX
CMP AL,[BX]
JNE P2
JMP P4
P2: MOV DH,[BX]
SUB DH,32
CMP AL,DH
JNE P3
JMP P4
P3: MOV DH,[BX]
ADD DH,32
CMP AL,DH
JNE P5
P4: INC DL
P5: LOOP P1
RET
COUNT ENDP
DISPLAY PROC NEAR
MOV DL,10
DIV DL
ADD AX,3030H ;数字->字符串
MOV N1,AL
MOV N2,AH
MOV DX,OFFSET S2
MOV AH,09
INT 21H
RET
DISPLAY ENDP
CODE ENDS
END START
展开阅读全文