欢迎来到天天文库
浏览记录
ID:58756038
大小:675.50 KB
页数:181页
时间:2020-10-03
《汇编语言程序设计基本程序设计ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、本章概述本章主要介绍汇编语言程序设计的基本方法。教学目标熟练掌握微型机的汇编语言程序设计的基本方法。学习内容■简单程序设计■分支程序设计■循环程序设计■子程序设计第九章基本程序设计一、简单程序(顺序程序)设计1.简单程序的结构例如:将VAR1、VAR2和VAR3三个连续单元的内容相加,结果存入RESULT单元中。SSEGSEGMENTPARASTACK‘STACK’DB128DUP(?)SSEGENDSDSEGSEGMENTPARAPUBLIC‘DATA’VAR1DB?;保存第一个数VAR2DB?;保存第二个数VAR3DB?;保存第三个数RES
2、ULTDB?;保存运算结果DSEGENDSCODESEGMENTPARAPUBLIC‘CODE’ASSUMECS:CODE,DS:DSEG,SS:SSEGMAINPROCFARPUSHDSXORAX,0PUSHAXMOVAX,DSEGMOVDS,AXMOVBX,OFFSETVAR1;设地址指针MOVAL,[BX];取第一个数送AL寄存器INCBX;修改地址指针ADDAL,[BX];加入第二个数INCBX;修改地址指针ADDAL,[BX];加入第三个数INCBX;修改地址指针MOV[BX],AL;保存结果RETMAINENDPCODEENDSEN
3、DMAIN;简单程序设计首先是要学会选择适当的指令构建程序。构建一个程序可选择的指令很多,只要正确就行。初学者在程序模版的基础上,更改主要指令就可以了。上例中有8六条指令是直接与题目要求有关的:MOVBX,OFFSETVAR1MOVAL,[BX]INCBXADDAL,[BX]INCBXADDAL,[BX]INCBXMOV[BX],AL例如:将DATA1中的字节数据拆开,分别存于DATA1和DATA2单元中。假设设DATA1单元中的数为:A6H,程序操作结果为:DATA2内容变成0AHDATA3内容变成06HSSEGSEGMENTSTACKDB2
4、56DUP(’‘)SSEGENDSDSEGSEGMENTDATA1DB0A6HDATA2DB?DATA3DB?DSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEG,SS:SSEG1STARTPROCFARPUSHDSMOVAX,0PUSHAXMOVAX,DSEGMOVDS,AXMOVAL,DATA1;取数A6HSHRAL,1;SHRAL,1;SHRAL,1;SHRAL,1;右移4位MOVDATA2,AL;存第一个结果MOVAL,DATA1;取数A6HANDAL,0FH;形成第二个数MOVDATA3,AL;保存RETS
5、TARTENDPCSEGENDSENDSTART2.查表程序设计例如设在内存中有一个阶乘表(0!~7!),DATA单元中有一个已知数X(设该数范围为0~7).查表求该数的阶乘值x!。STACK1SEGMENTSTACKDB256DUP(‘’)STACK1ENDSDATA1SEGMENTTABLEDW1,1,2,6,24,120DW720,5040;阶乘表RESULTDW?;保存结果X!DATADB?;存已知数XDATA1ENDSDATA数X1126241207205040TABLE+0TABLE+2TABLE+4TABLE+14用DB定义阶乘表
6、,可否?CSEGSEGMENTASSUMECS:CSEG,DS:DATA1,SS:STACK1BEGINPROCFARPUSHDSMOVAX,0PUSHAXMOVAX,MOVDS,AXMOVBH,0MOVBL,DATALEASI,TABLEMOVAX,[SI][BX]MOVRETBEGINENDPCSEGENDSENDBEGINDATA1ADDBX,BXRESULT,AX3.汇编语言程序输入输出的实现每一个最简单的程序都有基本的输入输出能力。一般,汇编语言程序的输入输出操作是通过对操作系统的子程序调用实现的。在DOS操作系统中,提供了功能丰富的
7、子程序,包括输入输出管理、内存管理、文件操作、磁盘读写控制等,DOS操作系统将它们称为系统功能调。DOS系统功能调用中的子功能有上百个,每一个子功能的具体作用、入口参数、出口参数都可通过查表获得。应用程序通过系统功能调用,能方便地完成输入输出操作。在汇编语言程序中,利用中断指令INT21H实现对操作系统系统功能调用中的子功能的调用。这里先介绍其中几个最常用的子功能。1>单个字符输入子功能(1号子功能)P这个子功能完成从键盘输入一个字符,将所输入字符的ASCII码送AL寄存器中,同时在显示器上显示这个字符。程序中的具体操作如下:(1)子功能号1送
8、入AH寄存器中;(2)执行INT21H指令,调用此子功能,系统等待键盘输入,如果输入了一个字符,结果可以在AL寄存器中得到输入字符的ASCII码。MO
此文档下载收益归作者所有