资源描述:
《王爽《汇编语言》 第6章 包含多个段的程序.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第6章包含多个段的程序掌握在程序中同时使用数据段、堆栈段和代码段。理解内存中不同段的分配原理。补全下面程序将内存0:300H—0:31FH处的数据复制到0:200H处。XX00300HXX00301HXX00302HXX00303HXX00304HXX00305HXX00306H.........XX0031EHXX0031FH00200H00201H00202H00203H00204H00205H00206H...0021EH0021FHAssumecs:codeCodesegmentmovax,movds,axmovax,0020hmov
2、es,axmovbx,0movcx,S:moval,[bx]moves:[bx],alincbxloopsmovax,4c00hint21hCodeendsend0030h0020h补全下面程序将“movax,4c00h”之前的指令复制到内存0:200H处。XXXXXXXXXXXXXX......XXXX00200H00201H00202H00203H00204H00205H00206H...0021EH0021FHAssumecs:codeCodesegmentmovax,movds,axmovax,0020hmoves,axmovbx,0
3、movcx,S:moval,[bx]moves:[bx],alincbxloopsmovax,4c00hint21hCodeendsendCS23PSPCS:0DS:0DS:FF一、在代码段中使用数据(将数据定义在代码段中)例:计算以下8个数据的和,结果保存在AX中:0123H,0456H,0789H,0ABCH,0DEFH,0FEDH,0CBAH,0987H。思路1:MOVAX,0ADDAX,0123HADDAX,0456HADDAX,0789H...ADDAX,0CBAHADDAX,0987H思路2:MOVAX,XXXXHMOVDS,AX
4、MOVBX,0MOVCX,nMOVAX,0S:ADDAX,[BX]ADDBX,2LOOPS23XXXX0156048907..09将数据定义在代码段中ASSUMECS:CODECODESEGMENTDW0123H,0456H,0789H,0ABCH,0DEFH,0FEDH,0CBAH,0987HMOVBX,0MOVAX,0MOVCX,8S:ADDAX,CS:[BX]ADDBX,2LOOPSMOVAX,4C00HINT21HCODEENDSEND定义数据伪指令:DW—字型数据DB—字节型数据DD—双字数据格式:DW(DB)数据1,数据2,数据3
5、,……23015604..BA0C8709BB0000B80000..CS:0CS:0FASSUMECS:CODECODESEGMENTDW0123H,0456H,0789H,0ABCH,0DEFH,0FEDH,0CBAH,0987HSTART:MOVBX,0MOVAX,0MOVCX,0S:ADDAX,CS:[BX]ADDBX,2LOOPSMOVAX,4C00HINT21HCODEENDSENDSTARTEND标号标号—为程序中第一条要执行的指令的标号。在编译中向编译器提供程序的入口地址和结束地址。二、在代码段中使用栈利用堆栈,编程将程序中定
6、义的数据逆序存放。Assumecs:codeCodesegmentDw0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987hCodeendsend23015604..数据BA0C8709..CS:0CS:0FDw0,0,0,0,0,0,0,00000……0000CS:10CS:1F栈段Start:movax,csmovss,axmovsp,movbx,0movcx,8S:pushcs:[bx]addbx,2loopsmovbx,0movcx,8S0:popcs:[bx]addbx,2loops0mova
7、x,4c00hint21hCodeendsEndstart20h检测点6.1补全程序,使下面程序实现依次用内存0:0—0:F单元中的内容改写程序中的数据。Assumecs:codeCodesegmentdw0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987hStart:movax,0movds,axmovbx,0movcx,8S:movax,[bx]addbx,2loopsmovax,4c00hint21hCodeendsEndstartMovcs:[bx],ax检测点6.2补全程序,使下面程序实现依
8、次用内存0:0—0:F单元中的内容改写程序中的数据,数据的传送用栈来进行,栈空间设置在程序内。dw0123h,0456h,0789h,0abch,0defh,0fe