九九乘法表程序doc.docx

上传人:b****8 文档编号:10929434 上传时间:2023-02-23 格式:DOCX 页数:13 大小:44.94KB
下载 相关 举报
九九乘法表程序doc.docx_第1页
第1页 / 共13页
九九乘法表程序doc.docx_第2页
第2页 / 共13页
九九乘法表程序doc.docx_第3页
第3页 / 共13页
九九乘法表程序doc.docx_第4页
第4页 / 共13页
九九乘法表程序doc.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

九九乘法表程序doc.docx

《九九乘法表程序doc.docx》由会员分享,可在线阅读,更多相关《九九乘法表程序doc.docx(13页珍藏版)》请在冰豆网上搜索。

九九乘法表程序doc.docx

九九乘法表程序doc

九九乘法表程序

九九乘法表

一、课程设计目的

本课程设计是继《微机系统及应用》课程之后的一次综合性设计、实验训练。

根据微机系统及应用课程教学的重点和主要知识点及工程实际需要,设置汇编语言程序设计、PC机内部接口和8086系统接口电路设计等设计题目。

要求学生综合本课程和其它相关课程中学到的80X86系统结构、汇编语言设计、典型接口芯片、电路电子技术等相关知识进行程序设计、硬件接口电路设计和调试,系统地掌握微机原理和接口技术的相关知识,实现知识的融会贯通。

要求学生通过1.5周的学习,提高设计汇编语言程序的能力和技巧,培养实现一个简单应用系统功能的硬件软件设计能力。

二、课程设计内容

汇编语言程序设计及调试

用汇编语言编写九九乘法表在屏幕上显示出来,而且能按一定规律显示.1键为横向排列;2键为颜色输出;0键为取消该功能即退出该程序。

 

源程序代码

DATASSEGMENT

NUMDB0AH,0DH,0ah,'100900319FANYUYU',0dh,'$'

XDB15dup(?

YDB15dup(?

table1db'PLEASEINPUT0-2:

$'

table2db'---------------------------1:

mutli2:

color0:

exit-----------------------------$'

table3db'WARNING:

PLEASEINPUT0-2$';此处输入数据段代码

colDB00001000b,00000011b,00000100b,00000111b,00000001b

DB00000110b,00001111b,00000000b,00000010b,00000101b;定义显示颜色

DATASENDS

STACKSSEGMENTSTACK;此处输入堆栈段代码

DW100HDUP(?

STACKSENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS,SS:

STACKS

mainprocfar;定义主程序

pushds

subax,ax;清零操作

pushax

movax,DATAS;数据段赋值给AX

movds,ax

leadx,table2;自定义数据送给DX

movah,9;功能号为9,显示

int21h

callback;调用子程序,实现回显与清除

t:

leadx,table1

movah,9;功能号为9,显示;

int21h

movah,1

int21h

movbl,al

callback;调用子程序,实现回显与清除

cmpbl,30h;‘0’赋给BL

jzq

cmpbl,31h;‘1’赋给BL

jzn

cmpbl,32h;‘2’赋给BL

jzm

leadx,table3;显示table3定义内容

movah,9;功能号为9,显示

int21h

callback

jmpt;跳转到t

n:

callmutli

jmpt

m:

callcolor

jmpt

q:

MOVDX,OFFSETNUM

MOVAH,9;显示功能

INT21H

MOVAH,1;键盘输入并回显

INT21H

movah,4ch;中断调用

int21h

popax;恢复现场

popds

ret

mainendp

mutliprocnear;九九乘法输出函数

pushbx;保护现场

pushcx

pushdx

SUBAX,BX

PUSHAX

MOVAX,DATAs

MOVDS,AX

MOVBL,0

MOVX,BL;X=0

MOVBH,1

MOVY,BH;Y=1

MOVCL,BL

LOOP1:

ADDBL,1;PRINTX

MOVDL,BL

ADDDL,30H

MOVAH,2

INT21H

MOVDL,'*';PRINT*

MOVAH,2

INT21H

MOVDL,BH;PRINTY

ADDDL,30H

MOVAH,2

INT21H

MOVDL,'=';PRINT=

MOVAH,2

INT21H

MOVAL,BH;PRINTZ=X*Y

IMULBL

MOVAH,00H

MOVCH,0AH

IDIVCH

MOVDH,AH

CMPAL,0

JZLOOP3;比较后跳转

ADDAL,30H

LOOP2:

MOVDL,AL

MOVAH,2H

INT21H

ADDDH,30H

MOVDL,DH

MOVAH,2;显示输出

INT21H

MOVDL,20H

MOVAH,2

INT21H

CMPBL,BH

JLLOOP1

MOVDL,0AH;键盘输入到缓冲区

MOVAH,2

INT21H

MOVDL,0DH

MOVAH,2

INT21H

MOVBL,CL

ADDBH,1

CMPBH,10

JLLOOP1

JMPEXIT

LOOP3:

MOVAL,20H

JMPLOOP2

EXIT:

MOVAH,07H;键盘输入无回显

INT21H

popax

popdx

popcx

popbx;恢复现场

ret

mutliendp

colorprocnear;颜色输出函数

pushax

pushbx

pushcx

pushdx

MOVAX,DATAs

MOVDS,AX

;========MAIN()===========

MOVBH,01H

LOP1:

MOVBL,01H

LOP2:

MOVAL,BH

MULBL

CALLDISPLAY;调用显示子程序

INCBL

CMPBL,BH

JBELOP2

CALLCRLF

INCBH

CMPBH,9

JBELOP1

MOVDX,OFFSETNUM

MOVAH,9

INT21H

MOVAH,1

INT21H

;===========================

popdx;恢复现场

popcx

popbx

popAX

ret

colorendp

;------------------------

CRLFPROCNEAR

PUSHAX

PUSHDX

MOVAH,2

MOVDL,0AH;键盘输入到缓冲区

INT21H

MOVDL,0DH;键盘复位

INT21H

POPDX

POPAX

RET

CRLFENDP

OUTXPROCNEAR

PUSHAX

PUSHDX

MOVAH,2

INT21H

POPDX

POPAX

RET

OUTXENDP

;----------------------------

DISPLAYPROCNEAR

PUSHDX

CMPAL,10

JAEDISP1

MOVDL,'';打印空格

CALLOUTX

JMPDISP2

DISP1:

MOVDL,10

MOVAH,0

DIVDL

MOVDL,AL

ADDDL,'0'

;--------------------------------------

cmpbl,bh

jneshow5

callwritecc

jmpshow1

show5:

cmpbl,1;小于或等于比较后跳转;结果为正就转移

jneshow6

callwritecc

jmpshow1

show6:

cmpbh,9

jneshow

callwritecc

jmpshow1

;-----------------------------------------------

show:

CALLOUTX

show1:

MOVAL,AH

DISP2:

MOVDL,AL

ADDDL,'0'

;------------------------------------------------

cmpbl,bh

jneshow4

callwritecc

jmpshow3

show4:

cmpbl,1

jneshow7

callwritecc

jmpshow3

show7:

cmpbh,9

jneshow2

callwritecc

jmpshow3

;--------------------------------------------------

show2:

CALLOUTX

show3:

MOVDL,''

CALLOUTX

CALLOUTX

popdx

RET

DISPLAYENDP

 

WriteCCPROCnear

pushAX

pushbx

pushcx

pushdx

pushsi

xorAH,AH;清零操作

MOVdh,9

MOVAL,dh

MOVsi,AX

MOVAH,9;显示字符串

MOVAL,DL

MOVbh,0

MOVbl,col[si]

MOVcx,1

INT10h

MOVAH,3

INT10h

MOVAH,2;显示输出

incDL;自加

INT10h

popsi

popdx

popcx

popbx

popAX

ret

WriteCCENDP

backprocnear

movdl,0Ah

movah,2

int21h

movdl,0Dh

movah,2

int21h

ret

backendp

MOVAH,4CH

INT21H

CODESENDS

END

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1