预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共67页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

微型计算机原理与接口技术第3章汇编语言程序设计§3.1汇编语言程序概述一.汇编语言程序的特点一.汇编语言程序的特点一.汇编语言程序的特点二.关于汇编语言程序设计三.汇编语言程序的运行三.汇编语言程序的运行§3.28088汇编语言和程序框架一.8088汇编语言的数据项一.8088汇编语言的数据项一.8088汇编语言的数据项一.8088汇编语言的数据项一.8088汇编语言的数据项一.8088汇编语言的数据项一.8088汇编语言的数据项一.8088汇编语言的数据项二.8088汇编语言伪指令二.8088汇编语言伪指令二.8088汇编语言伪指令二.8088汇编语言伪指令二.8088汇编语言伪指令二.8088汇编语言伪指令二.8088汇编语言伪指令二.8088汇编语言伪指令xA,yB二.8088汇编语言伪指令三.8088汇编语言程序的框架三.8088汇编语言程序的框架§3.3DOS系统功能调用一.什么是DOS系统功能调用二.DOS系统功能调用的方法三.DOS系统功能调用示例三.DOS系统功能调用示例三.DOS系统功能调用示例§3.4汇编语言程序设计基础1.顺序结构【例3-20】对于三个8位无符号数7AH,10H和53H,编写S=7AH*10H-53H的程序。3算法结束2.分支结构2.分支结构【例3-21】计算符号函数SGN(X)的值。已知符号函数SGN(X)的值Y有:1当X>0Y=0当X=0-1当X<0DATASEGMENTXDW3A2BHYDW?DATAENDS;CODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX;DS指向DATA段MOVAX,XCMPAX,0;X与0比较JLNEXT1;若X<0,则转NEXT1处理CMPAX,0JGNEXT2;若X>0,则转NEXT2处理MOVY,0;X=0,则Y=0JMPRES;转处理结束处NEXT1:MOVY,-1;X<0,则Y=-1JMPRES;转处理结束处NEXT2:MOVY,1;X>0,则Y=1RES:MOVAH,4CH;返回DOSINT21HCODEENDSENDSTART分支结构总结3.循环结构3.循环结构【例3-23】在附加段有一个首地址为LIST和未经排序的字数组,在数组的第一个字中存放着数组的长度,数组的首地址已存放在DI寄存器中。AX寄存器中存放着一个数。要求编制一程序:在数组中查找该数,如果找到此数则把它从数组中删去。字符串首址:ES:DI字符串长度:CX关键字:AX搜索方向:CLDrepnzscasw未找到标志:ZF=0程序清单:datasegmentlistdw……dataends;codesegmentassumecs:code,es:datastart:movax,datamoves,axmovdi,offsetlistpushdicldmovcx,es:[di]adddi,2repnescasw多重循环多重循环示例数学模型——冒泡算法88流程图程序清单:DATASEGMENTMEMDW100DUP(?)DATAENDS;CODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVCX,100DECCXLOOP1:MOVDI,CXMOVBX,0LOOP2:MOVAX,MEM[BX]CMPAX,MEM[BX+2]JAECONTXCHGAX,MEM[BX+2]MOVMEM[BX],AXCONT:ADDBX,2LOOPLOOP2MOVCX,DILOOPLOOP1EXIT:MOVAH,4CHINT21HCODEENDSENDSTART4.子程序结构子程序结构-执行线路子程序的结构子程序结构——保护与恢复参数传递子程序设计举例DECTOHEXSEGMENTASSUMECS:DECTOHEXREPEAT:CALLDECTOBINCALLCRLFCALLBINTOHEXCALLCRLFJMPREPEAT;