九九乘法表程序.doc
文本预览下载声明
九九乘法表
一、课程设计目的
本课程设计是继《微机系统及应用》课程之后的一次综合性设计、实验训练。根据微机系统及应用课程教学的重点和主要知识点及工程实际需要,设置汇编语言程序设计、PC机内部接口和8086系统接口电路设计等设计题目。要求学生综合本课程和其它相关课程中学到的80X86系统结构、汇编语言设计、典型接口芯片、电路电子技术等相关知识进行程序设计、硬件接口电路设计和调试,系统地掌握微机原理和接口技术的相关知识,实现知识的融会贯通。要求学生通过1.5周的学习,提高设计汇编语言程序的能力和技巧,培养实现一个简单应用系统功能的硬件软件设计能力。
二、课程设计内容
汇编语言程序设计及调试
用汇编语言编写九九乘法表在屏幕上显示出来,而且能按一定规律显示.1键为横向排列;2键为颜色输出;0键为取消该功能即退出该程序。
源程序代码
DATAS SEGMENT
NUM DB 0AH,0DH,0ah,100900319 FAN YUYU,0dh,$
X DB 15 dup(?)
Y DB 15 dup(?)
table1 db PLEASE INPUT 0-2:$
table2 db ---------------------------1:mutli 2:color 0:exit-----------------------------$
table3 db WARNING:PLEASE INPUT 0-2$ ;此处输入数据段代码
col DB
DB ;定义显示颜色
DATAS ENDS
STACKS SEGMENT STACK ;此处输入堆栈段代码
DW 100H DUP(?)
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
main proc far ;定义主程序
push ds
sub ax,ax ;清零操作
push ax
mov ax,DATAS ;数据段赋值给AX
mov ds,ax
lea dx,table2 ;自定义数据送给DX
mov ah,9 ;功能号为9 ,显示
int 21h
call back ;调用子程序,实现回显与清除
t: lea dx,table1
mov ah,9 ;功能号为9 ,显示;
int 21h
mov ah,1
int 21h
mov bl,al
call back ;调用子程序,实现回显与清除
cmp bl,30h ;‘0’赋给BL
jz q
cmp bl,31h ;‘1’赋给BL
jz n
cmp bl,32h ;‘2’赋给BL
jz m
lea dx,table3 ;显示table3定义内容
mov ah,9 ;功能号为9 ,显示
int 21h
call back
jmp t ;跳转到t
n: call mutli
jmp t
m: call color
jmp t
q: MOV DX,OFFSET NUM
MOV AH,9 ;显示功能
INT 21H
MOV AH,1 ;键盘输入并回显
INT 21H
mov ah,4ch ;中断调用
int 21h
pop ax ;恢复现场
pop ds
ret
main endp
mutli proc near ;九九乘法输出函数
push bx ;保护现场
push cx
push dx
SUB AX,BX
PUSH AX
MOV AX,DATAs
MOV DS,AX
MOV BL,0
MOV X,BL ;X=0
MOV BH,1
MOV Y,BH ;Y=1
MOV CL,BL
LOOP1:
ADD BL,1 ;PRINT X
MOV DL,BL
ADD DL,30H
MOV AH,2
INT 21H
MOV DL,* ;PRINT *
MOV AH,2
INT 21H
MOV DL,BH ;PRINT Y
ADD DL,30H
MOV AH,2
INT 21H
MOV DL,= ;PRINT =
MOV AH,2
INT 21H
MOV AL,BH ;PRINT Z=X*Y
IMUL BL
MOV AH,00H
MOV CH,0AH
IDIV CH
MOV DH,AH
CMP AL,0
JZ LOOP3 ;比较后跳转
ADD AL,30H
LO
显示全部