教学课件第4章汇编语言程序设计三

上传人:桔**** 文档编号:568533237 上传时间:2024-07-25 格式:PPT 页数:28 大小:376.47KB
返回 下载 相关 举报
教学课件第4章汇编语言程序设计三_第1页
第1页 / 共28页
教学课件第4章汇编语言程序设计三_第2页
第2页 / 共28页
教学课件第4章汇编语言程序设计三_第3页
第3页 / 共28页
教学课件第4章汇编语言程序设计三_第4页
第4页 / 共28页
教学课件第4章汇编语言程序设计三_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《教学课件第4章汇编语言程序设计三》由会员分享,可在线阅读,更多相关《教学课件第4章汇编语言程序设计三(28页珍藏版)》请在金锄头文库上搜索。

1、微机系统与接口技术微机系统与接口技术东南大学东南大学1第第4 4章章 汇编语言程序设计汇编语言程序设计( (三)三)AssemblyLanguageProgramming(3)格式格式#伪指令伪指令# DOS/BIOSDOS/BIOS调用调用(简单了解)简单了解) 重点:重点:数据结构表示数据结构表示变量、指针变量、指针程序结构程序结构程序流控制(条件、分支、循环)程序流控制(条件、分支、循环)程序设计方法程序设计方法-程序设计举例程序设计举例微机系统与接口技术微机系统与接口技术东南大学东南大学2 汇编语言程序举例(汇编语言程序举例(1)分块传送)分块传送DATADATASEGMENTSEGM

2、ENTSTRGSTRGDBDB256 DUP(1,2,3)256 DUP(1,2,3)STG1STG1EQU STRG+7EQU STRG+7STG2STG2EQU STRG+27EQU STRG+27STRSESTRSEEQU 50EQU 50; ;串长串长DATADATAENDSENDSSSTACKSSTACKSEGMENTSEGMENTSTACKSTACKDBDB256256DUP(?)DUP(?)SSTACKSSTACKENDSENDSCODECODESEGMENTSEGMENTASSUMEASSUMECSCS:CODECODE,DSDS:DATADATA,ESES:DATADATAM

3、AIN:MAIN:.MOVMOVAX,DATAAX,DATAMOVMOVDS,AXDS,AXMS-DOS程序程序微机系统与接口技术微机系统与接口技术东南大学东南大学3MOVMOVES,AXES,AXMOVMOVCX,STRSE;CX,STRSE;MOV SI,OFFSET STG1; MOV SI,OFFSET STG1; 源串首址源串首址MOV DI,OFFSET STG2MOV DI,OFFSET STG2;目标首址;目标首址CLDCLD ;增量方式;增量方式PUSH SI PUSH SI ADD SI,STRSE-1 ADD SI,STRSE-1 ;SI=SI=源串末址源串末址 CMP

4、SI,DI CMP SI,DI POP SI POP SI JL OK JL OK;不重叠;不重叠 STD STD;重叠,按减量;重叠,按减量 ADD SI,STRSE-1 ; ADD SI,STRSE-1 ;指向串末指向串末 ADD DI,STRSE-1 ADD DI,STRSE-1OK:OK:REP MOVSBREP MOVSB程序举例(程序举例(1)分块传送)分块传送(续一)续一)STAG1STAG2STRSESTAG1+STRSE微机系统与接口技术微机系统与接口技术东南大学东南大学4程序举例(程序举例(1)分块传送)分块传送(续二)续二) MOV AX,4C00H ; MOV AX,4

5、C00H ;返回返回DOSDOS INT 21H INT 21HCODE ENDSCODE ENDS END MAIN END MAIN 数据块传送:一般情况数据块传送:一般情况P204微机系统与接口技术微机系统与接口技术东南大学东南大学5程序举例(程序举例(1)分块传送)分块传送(通用子程序通用子程序)通用子程序结构通用子程序结构功能功能=串移动串移动ENTRY:DS:SI=源串首址源串首址ES:DI=目标首址目标首址CX=串长串长-考虑物理地址关系考虑物理地址关系数据块传送:一般情况数据块传送:一般情况微机系统与接口技术微机系统与接口技术东南大学东南大学6BLKMOVPROCPUSH DS

6、PUSH ESPUSHAXPUSH BXPUSHDXPUSH CXMOVAX,SIMOV CL,4SARAX,CL;右移;右移4位位MOV DX,DSADD AX,DSMOV DS,AXANDSI,0FH程序举例(程序举例(1)分块传送)分块传送(通用子程序)通用子程序)微机系统与接口技术微机系统与接口技术东南大学东南大学7MOV BX,DISARBX,CL;右移右移4位位MOV DX,ESADD BX,DXMOV ES,BXANDDI,0FHCMP AX,BX;比较;比较SRC/DST起始地址高位起始地址高位JAMOVDOWN;从低往高从低往高JBMOVUPCMPSI,DI;高位相等,比低位

7、;高位相等,比低位JAMOVUPJBMOVDOWN程序举例(程序举例(1)分块传送)分块传送(通用子程序)通用子程序)微机系统与接口技术微机系统与接口技术东南大学东南大学8POPCX;相等,不移动相等,不移动JMPMOVEXITMOVUP:STDPOPCXMOV AX,CXDEC AXADD SI,AXADD DI,AXJMPDOMOVMOVDOWN:CLDPOPCXDOMOV:REPMOVSBMOVEXIT:POP.;?子程序保护子程序保护RETBLKMOVENDP程序举例(程序举例(1)分块传送)分块传送(通用子程序)通用子程序)微机系统与接口技术微机系统与接口技术东南大学东南大学9多重循

8、环:例多重循环:例软软件延时件延时(nT,T=210ns)SOFTDLYPROCMOVBL,10;4TDELAY0:MOVCX,2801;4TDELAY1:LOOPDELAY1;17T/5TDECBL;3TJNZDELAY;16T/4TRET;20TSOFTDLYENDPn=4+10*(4+2801*17-12)+3+16)-12+20-10ms内循环内循环程序设计举例(程序设计举例(2)循环软件延时)循环软件延时微机系统与接口技术微机系统与接口技术东南大学东南大学10DAINDEXDB0;?波形发生波形发生DOTNUMDBDATIME-$-1DAVALUEDB0,40H,80H,0C0HDB

9、255,0C0H,80H,40H;三角波三角波DATIMEDW100DACTRLPROCFARPUSHDSPUSH0000MOVAX,SEGDAVALUEMOVDS,AXMOVCL,DOTNUMLEASI,DAVALUEINCSI程序设计举例(三)查表波形发生程序设计举例(三)查表波形发生微机系统与接口技术微机系统与接口技术东南大学东南大学11MOVDAINDEX,0DALOOP:MOVAL,DAINDEXCMPAL,DOTNUMJCDACYCLEXOR AL,ALMOV DAINDEX,AL;复位计数复位计数DACYCLE:CALLDAOUTINCSIINCDAINDEXCALLDELAYC

10、ALLKBINPUT;读键盘;读键盘CMPAL,1BH;ESC键按下,结束键按下,结束JNZDALOOPRETDACTRLENDP程序设计举例(三)查表波形发生程序设计举例(三)查表波形发生(续一续一)微机系统与接口技术微机系统与接口技术东南大学东南大学12DAOUTPROC; 查表输出查表输出LEASI,DAVLUEXORAH,AHADDSI,AXMOVAL,SIMOVDX,DAPORT;DAC端口端口OUTDX,ALRETDAOUTENDP程序设计举例(三)查表波形发生程序设计举例(三)查表波形发生(续二续二)微机系统与接口技术微机系统与接口技术东南大学东南大学13程序设计举例程序设计举例

11、模模块化:块化:过程过程/子程序调用与参数传递子程序调用与参数传递术语术语嵌套递归可重入可重定位嵌套递归可重入可重定位参数传递参数传递、寄存器、寄存器、数据单元变量(内存,含指针变量)(全局)、数据单元变量(内存,含指针变量)(全局)、堆栈、堆栈微机系统与接口技术微机系统与接口技术东南大学东南大学14程序设计举例程序设计举例过程调用与参数传递过程调用与参数传递START:MOVAX,DATAMOVDS,AXLEABX,ARRAYPUSHBXLEABX,COUNTPUSHBXLEABX,SUMPUSHBXCALLPRO_ADD:;ADDSP,6OFFSET ARRAYOFFSET ARRAYOF

12、FSET COUNTOFFSET COUNTOFFSETSUM 断点断点CS 断点断点IP调用后调用后SP运行前运行前SP堆栈段堆栈段+8微机系统与接口技术微机系统与接口技术东南大学东南大学15PRO_ADDPROCFAR PUSHAX PUSHBX PUSHCX PUSHBP MOVBP,SP MOVBX,BP+14; MOVCX,BX;count MOVBX,BP+12;SUM指针指针 MOVBX,BP+16MOVAX,0 断点断点AX 断点断点CX 断点断点BX 断点断点BP +8程序设计举例程序设计举例过程调用与参数传递(续)过程调用与参数传递(续)微机系统与接口技术微机系统与接口技术

13、东南大学东南大学16LP:ADDAX,SIINCSIINCSILOOPLPMOVBX,AXPOPBPPOPCXPOPBXPOPAXRET6 断点断点AX 断点断点CX 断点断点BX 断点断点BP +8程序设计举例程序设计举例过程调用与参数传递(续)过程调用与参数传递(续)微机系统与接口技术微机系统与接口技术东南大学东南大学17#include/*程序程序2*/intT_calc(int,int);intmain()inta=20,b=100,c;T_calc(a,b);return0;intT_calc(inta,intb)intc;c=a+b;returnc;TCCBmsIinclude-L

14、libmyprog.cC语言函数语言函数(课外作业选做:观察汇编程序)(课外作业选做:观察汇编程序)微机系统与接口技术微机系统与接口技术东南大学东南大学18过程过程/子程序子程序模模块化:调用与参数传递块化:调用与参数传递计算!(计算!(N=8WORD;N=12DWORD););MOVAX,N;计算计算MOVCX,AXDECCXLP:MULCXLOOPCXMOVRESULT,AXRESULTDW?循环方式循环方式微机系统与接口技术微机系统与接口技术东南大学东南大学19过程过程/子程序调用子程序调用-递归递归计算!(计算!(N=8WORD;N12如何处理如何处理MOVAX,N;计算计算CALLP

15、CALCMOVRESULT,AXRETRESULTDW?课外选做:观察堆栈变化课外选做:观察堆栈变化数数据流和程序流据流和程序流微机系统与接口技术微机系统与接口技术东南大学东南大学20递归调用递归调用(续续)PCALC:CMPAX,1;递归函数递归函数JNZPCALC1RETPCALC1:PUSHAXDECAXCALLPCALC;递归调用;递归调用POPBXMULBXRET微机系统与接口技术微机系统与接口技术东南大学东南大学21实验:汇编实验:汇编.ASM-.OBJ-.EXE单模块程序单模块程序工具:工具:EDIT.EXEMASM.EXELINK.EXE编辑器编辑器汇编器汇编器链接器链接器D:

16、MASMmyprog;-myprog.OBJD:LINKmyprog;-myprog.EXE多多模块程序模块程序D:MASMmyprog1;-myprog1.OBJD:MASMmyprog2;-myprog2.OBJD:LINKmyprog1+myprog2+xxx.lib;-myprog1.EXE微机系统与接口技术微机系统与接口技术东南大学东南大学22程序程序1hello.c#includeintmain()printf(Hello,worldn);return0;TCC-B-ms-Iinclude-Llibhello.c C语言函数(语言函数(课外作业选做:观察汇编程序)课外作业选做:观察

17、汇编程序)微机系统与接口技术微机系统与接口技术东南大学东南大学23HelloWorld与系统调用与系统调用DATASEGMENTszHelloDBHello,World!,0dh,0ah,$DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATASTART:MOVAX,DATAMOV DS,AXMOV AH,9MOV DX,OFFSETszHelloINT21HMOVAH,4CHINT21HCODEENDSENDSTART用户堆栈用户堆栈SSTACKSEGMENTSTACKDB256DUP(?)SSTACKENDS微机系统与接口技术微机系统与接口技术东南

18、大学东南大学24汇编程序输入输出汇编程序输入输出BIOS/BDOS(P174-204)概念和使用概念和使用DOS和和BIOS调调用用(DiskOS-BasicI&Osystem)两组系统服务程序两组系统服务程序OS与与MS-DOS,MS-DOSOS:处处理理机机/存存储储/文文件件/设备设备/作业管理作业管理-资源管理资源管理硬硬件件裸裸机机:BIOS-DOS-高高级级语语言言。硬硬件件控控制制:直直接接IO-BIOS-DOS-高级语言。高级语言。移植性:直接移植性:直接IOBIOSDOS高级语言。高级语言。关键:关键:DOS与设备无关与设备无关-BIOS与设备相关与设备相关应用应用:系统功能

19、调用系统功能调用-软中断软中断PCMS-DOS-BIOSINTXXH微机系统与接口技术微机系统与接口技术东南大学东南大学25汇编程序输入输出汇编程序输入输出BIOS/BDOS(P180).系统功能系统功能86PC:4种种中中断断:NMI,INTR,内内部部中中断断、软软中中断断向量中断技术向量中断技术0-3FFH中断向量表中断向量表0255中断号对应中断例程入口中断号对应中断例程入口INTnINT10H1FHROM-BIOSI/O控制程序控制程序物理地址物理地址0F000起始起始INT203FHDOS中断中断INT40HFFH自由中断区自由中断区P449-458附录附录3.2和和3.3微机系统

20、与接口技术微机系统与接口技术东南大学东南大学26汇编程序输入输出汇编程序输入输出BIOS/BDOS(P178) 读键盘(阻塞)读键盘(阻塞)(非阻塞)(非阻塞)MOVAH,1KBSCAN:MOVAH,0BHINT21HINT21HCMPAL,YCMPAL,0FFHJZKBINPUT;其他例行处理操作其他例行处理操作;JMPKBSCANKBINPUT:MOVAH,1BOIS调用:调用:MOVAH,0MOVAH,1INT16HINT16H 微机系统与接口技术微机系统与接口技术东南大学东南大学27汇编程序输入输出汇编程序输入输出BIOS/BDOS 显示字符:显示字符:(DOS仅字符方式仅字符方式)M

21、OVAH,2MOVDL,A;07BellINT21H;C可退出可退出特点:特点:(MS-DOS)(1)不用不用CALL(2)软中断软中断INTn(3)用用户户程程序序不不必必与与服服务务程程序序代代码码相相连连向向量量(同一般(同一般OS:代码简洁、可读性好,调试、使用方便)代码简洁、可读性好,调试、使用方便)=基础基础CP/M-DOS/BIOS,。,。(4)BIOS-ROM固化。固化。 微机系统与接口技术微机系统与接口技术东南大学东南大学28汇编程序输入输出汇编程序输入输出BIOS/BDOS1.发展发展(1.06.22+,4.0后为多任务)后为多任务)/IBMPCDOS2局限性局限性(80x

22、86实模式实模式,640K/1M)3.系系统统层层次次DOS引引导导块块;DOS自自身身模模块块(3个个文文件件);DOS外外部命令块部命令块(.COM/EXE/.SYS);PC用用户户系系统统层层次次结结构构:应应用用层层/DOS服服务务层层/ROM-BIOS服服务层务层/硬件控制层硬件控制层-接口技术接口技术外外部部(SHELL)命命令令行行COMMAND.COM/内内部部控控制制:INTn调用调用=系统资源管理使用。系统资源管理使用。4.内内存存映映像像中中断断向向量量/DOS设设备备驱驱动动/DOS内内核核/系系统统配配置置/DOS-SHELL常驻常驻/用户程序用户程序5.不不可可重重入入DOSKernal:3个个堆堆栈栈区区:Ker_Stk1错错误误处处理理与与字字符符设设备备处处理理;Ker_Stk2正正常常处处理理文文件件与与服服务务;Ker_Stk3正正常常处处理字符设备服务理字符设备服务;6.系系统统资资源源系系统统堆堆栈栈(3)、系系统统链链指指针针块块、(系系统统扇扇区区缓缓冲冲区链、系统句柄文件控制块链、区链、系统句柄文件控制块链、PSP链链。第第4章章

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号