微型计算机原理课件.ppt

上传人:牧羊曲112 文档编号:6284332 上传时间:2023-10-13 格式:PPT 页数:54 大小:279.82KB
返回 下载 相关 举报
微型计算机原理课件.ppt_第1页
第1页 / 共54页
微型计算机原理课件.ppt_第2页
第2页 / 共54页
微型计算机原理课件.ppt_第3页
第3页 / 共54页
微型计算机原理课件.ppt_第4页
第4页 / 共54页
微型计算机原理课件.ppt_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《微型计算机原理课件.ppt》由会员分享,可在线阅读,更多相关《微型计算机原理课件.ppt(54页珍藏版)》请在三一办公上搜索。

1、第四章 宏汇编语言程序设计,本章内容,汇编语言程序格式MASM中的表达式伪指令语句DOS系统功能调用BIOS中断调用,概述,汇编语言利用指令的助记符、符号地址、标号来编写的语句汇编语言源原程序用汇编语言编写的程序,汇编程序,连接程序,目标程序,可执行程序,一个例子程序,Page 124,例4-1程序由段的描述组成指令语句/伪指令语句构成,4-1 汇编语言程序格式,指令性语句伪指令语句数据项,汇编语言程序格式指令语句,对象CPU与机器码相对应,要求CPU执行的操作格式标号:指令助记符 操作数,操作数;注释,汇编语言程序格式伪指令语句,对象汇编程序通知编译器,如何生成目标码。本身不产生机器目标吗格

2、式名字 伪指令助记符 操作数,操作数.;注释,汇编语言程序格式数据项,常数确定的数据,有固定值,没有属性变量存放在存储单元中的值在程序中以变量名的形式出现,代表存放数据的存储单元的符号地址三属性段属性/段内偏移量属性/类型属性,汇编语言程序格式数据项,标号可执行指令语句的首字节地址的符号表示被JMP/CALL/LOOP等所使用三属性段属性/段内偏移量属性/类型(距离)属性,4-2 MASM中的表达式,指令操作数形式常数、变量、标号、表达式、关键字表达式的构成运算符运算对象:常数、变量、标号结果为常数、地址在汇编时求值六大类运算,表达式算术运算,加、减、乘、除、模、左移、右移运算对象、结果整数禁

3、忌地址相加无法求值,表达式算术运算,例:abcequ35hvar1db10hvar2db0ahmovax,abc shr 4movax,abc shl 4movcx,var2-var1movbx,abc-5,表达式逻辑运算,与、或、非、异或按位运算运算对象、结果常数禁忌变量名,表达式逻辑运算,例:abc=10habc1equ2ahv1db3ahmovax,abc and 0fhmovax,abc or abc1movax,v1 and abc,表达式关系运算,EQ、NE、LT、GT、LE、GE对象数据同段内的偏移地址结果真:全1假:全0,表达式关系运算,例:abcequ10hmovax,abc

4、 eq 10movax,abc lt 10movax,abc gt 10,表达式数值返回运算,Offset、seg、type、length、size对象变量、标号结果值,表达式数值返回运算,Offset变量、标号的段内偏移地址与 LEA 的差异?Seg变量、标号的段地址,表达式数值返回运算,Type变量、标号的类型属性Length外层DUP的单元个数无DUP则返回1,表达式数值返回运算,Sizesize=length*type,表达式属性修改运算,Ptr临时改变变量、标号的类型属性movword ptr bx,0jmpfar ptr sub1This给变量、标号赋予类型firstequ thi

5、s bytetabledw 2000h,表达式属性修改运算,High/Low字节分离常数、常数表达式moval,low(offset da1),4-3 伪指令语句,不生成机器码,帮助解释、生成指令的机器码变量定义、存储器分配、段定义,伪指令语句数据定义,定义/分配变量的存储器单元,并初始化存储器单元格式变量名 助记符 操作数,操作数;注释,符号地址,DBDWDD,伪指令语句数据定义,DUP的使用定义重复数据例abcdb10 dup(0)abdb100 dup(1,2,34 dup(0),伪指令语句数据定义,字符串的定义DB/DW/DD?DB按正常的顺序排列DW/DD只能以两个一组作定义,顺序不

6、同,伪指令语句数据定义,符号地址的使用DW?DD?DB?,伪指令语句赋值,不分配存储器空间常数EQU不可重复赋值=可重复赋值,伪指令语句段定义,段名 segment 定位类型 组合类型 分类名段名ends,伪指令语句段定义,段名 segment 定位类型 组合类型 分类名段名ends,定义该段起始地址定位ParaByteWordPage,伪指令语句段定义,段名 segment 定位类型 组合类型 分类名段名ends,定义组合类型NONEPUBLICCOMMONATSTACK,伪指令语句段定义,段名 segment 定位类型 组合类型 分类名段名ends,定义该段的分类名,分类名相同,被组合成同

7、一个段,伪指令语句数据定义,dseg segment at 0055honedb0twodwtwothreeddtwofourequ10hfivedwfoursixdb5-fourdsegends,伪指令语句段分配语句,ASSUME说明当前段是哪些段,帮助汇编程序产生段前缀必须放在第一句指令之前不得短缺Assume cs:cseg,ds:dseg,ss:sseg,es:esegAssume nothing,伪指令语句过程定义,子程序格式过程名PROC属性Ret过程名ENDP,伪指令语句END,结束语句标识程序的首指令格式END标号,伪指令语句段寄存器的初始化,DS/ES指令装入mov ax,d

8、segmov ds,axmov ax,esegmov es,ax,伪指令语句段寄存器的初始化,SS/SP自动装入sseg segment STACKdw100 dup(0)sseg ends,伪指令语句段寄存器的初始化,SS/SP(指令装入)定义ssegsegmentdw100 dup(0)toplabelwordssegends,装入Mov ax,ssegMov ss,axMov sp,offset top,top equ this word,伪指令语句段寄存器的初始化,CS自动装入end后的标号便是第一条指令(语句),CS:IP,汇编语言源程序的框架,段的描述title注释数据段(附加段)

9、堆栈段代码段(Assume)end 标号,汇编语言源程序的框架,Title dsegsegmentdsegendsesegsegmentesegendsssegsegment stack100H dup(0)ssegends,csegsegmentassume cs:cseg,ds:dseg,es:eseg,ss:ssegmainproc farstart:pushdsxorax,axpushaxmovax,dsegmovds,axmovax,esegmoves,esegretmainendpcsegendsendstart,其他伪指令,ORG 定位伪指令设置汇编程序位置指针,指定下一语句的起

10、始偏移地址$汇编时用于指示下一数据/指令的段内偏移量,当前位置计数器常常用来计算前一变量的长度,字节数,其他伪指令,dsegsegmentorg 1000hv1db10h,20h,30H,40Hcountequ$-v1dsegends,其他伪指令,Label 给存储单元(变量或标号)取一名字,并指定其类型同样具有三个属性DataByteLabelByteDataWordDW20H Dup(0),结构定义语句,复杂数据的定义,将不同类型的数据放在同一个数据结构中结构定义结构名STRUC结构名ENDS结构变量预置结构变量名结构名,定义结构成员,但不分配内存,预置时,才被分配存储单元,结构定义预置,

11、tabstruct1dbabcdt2dw?t3dwseg L1t4dw2 dup(0)t5dw1122Hdw3344Htabends,onetabtwotabthreetabfourtab5 dup,结构中的变量,简单变量由DB、DW、DD定义的单个结构元素内容可被修改如:T1DW1234H多重变量包含多个元素值不可改,只能使用初值如:T4DW2 DUP(0)T5DW1122H,3344H,结构中的变量,字符串内容可改,长度不得超过如:T6DBASBD多重结构引用另一结构,结构的使用,MOVTWO.T2,AXMOVBX,FOUR.T50MOVSI,OFFSET FOURMOVBX,SI.T50,结构的使用,例:Page 149/例4-41利用结构存储学生的信息结构变量的预置,4-4 DOS系统功能调用和BIOS中断调用,中断服务子程序INT nAPI,用户不必了解I/O设备及接口的要求,方便使用,常用的软件中断,退出程序Int 20h,程序段前缀,DS段首地址:INT 20H的代码Int 21h,返回DOSInt 27h,驻留退出根据情况选择退出的方式,DOS系统功能调用,一个中断服务子程序,根据不同的调用参数,区分不同的操作,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号