体系第一次上机作业
0
示例程序调试
第5章第137页的示例程序,并增加如下功能:
(1) 程序开始时,在屏幕上显示本人的姓名全拼和学号,格式如下:
NAME: Xiao Wanzi
ID:1302102910
(2) 程序结束时,在屏幕上显示“Good Bye!”
(3) 此题不需要提交源代码,仅用于熟悉掌握汇编程序的基本结构。
提示:输入输出可见参考书《微型计算机基本原理与应用》的附录二“DOS功能调用”
- 代码如下
DATA SEGMENT ;数据段
NUM DW 0011101000000111B ;3A07H
MYNAME DB 'NAME:Feng Haoran','$' ;姓名
MYID DB 'ID:1600013009','$' ;学号
MYBYE DB 'Good Bye!','$' ;结束语
NOTES DB 'The result is:','$'
DATA ENDS
STACK SEGMENT STACK ;堆栈段
STA DB 50 DUP(?)
TOP EQU LENGTH STA
STACK ENDS
CODE SEGMENT ;代码段
ASSUME CS:CODE, DS:DATA, SS:STACK
BEGIN: MOV AX, DATA
MOV DS, AX ;为DS赋初值
MOV AX, STACK
MOV SS, AX ;为SS赋初值
MOV AX, TOP
MOV SP, AX ;为SP赋初值
MOV DX, OFFSET MYNAME
MOV AH, 09H ;显示字符串MYNAME
INT 21H ;DS:DX=串地址,'$'结束字符串
MOV DL, 0DH ;输出回车
MOV AH, 2
INT 21H
MOV DL, 0AH ;输出换行
MOV AH, 2
INT 21H
MOV DX, OFFSET MYID
MOV AH, 09H ;显示字符串MYID
INT 21H ;DS:DX=串地址,'$'结束字符串;INT 21H是中断指令,执行后标记就被存储进AL中;AH为09H时INT的功能是输出字符串,02H时为输出字符
MOV DL, 0DH ;输出回车,0D是回车
MOV AH, 2
INT 21H
MOV DL, 0AH ;输出换行
MOV AH, 2
INT 21H
MOV DX, OFFSET NOTES
MOV AH, 09H ;显示字符串NOTES,ASCII码09对应tab
INT 21H ;DS:DX=串地址,'$'结束字符串
MOV BX, NUM ;将数装入BX
MOV CH, 4 ;共4个十六进制数字
ROTATE: MOV CL, 4 ;CL为位移位数
ROL BX, CL
MOV AL, BL
AND AL, 0