计算机硬件技术基础 (汇编语言).ppt

计算机硬件技术基础 (汇编语言).ppt

ID:49282902

大小:638.00 KB

页数:57页

时间:2020-02-03

计算机硬件技术基础 (汇编语言).ppt_第1页
计算机硬件技术基础 (汇编语言).ppt_第2页
计算机硬件技术基础 (汇编语言).ppt_第3页
计算机硬件技术基础 (汇编语言).ppt_第4页
计算机硬件技术基础 (汇编语言).ppt_第5页
计算机硬件技术基础 (汇编语言).ppt_第6页
计算机硬件技术基础 (汇编语言).ppt_第7页
计算机硬件技术基础 (汇编语言).ppt_第8页
计算机硬件技术基础 (汇编语言).ppt_第9页
计算机硬件技术基础 (汇编语言).ppt_第10页
资源描述:

《计算机硬件技术基础 (汇编语言).ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第三章汇编语言程序设计汇编语言是一种将机器码指令符号化了的编程语言,它介于机器语言和高级语言之间。除了汇编指令语句外,汇编语言还有丰富的伪指令语句等内容。本章包括以下主要内容:§3.1汇编语言程序结构§3.2伪指令§3.3语句格式§3.4程序设计举例1第三章汇编语言程序设计汇编语言是一种将机器码指令符号化了的编程语言,它介于机器语言和高级语言之间。除了汇编指令语句外,汇编语言还有丰富的伪指令语句等内容。本章包括以下主要内容:§3.1汇编语言程序结构§3.2伪指令§3.3语句格式§3.4程序设计举例280X86/Pentium系列微处理器均采用存储器段页

2、式管理,其汇编语言都是以逻辑段为基础,按段的概念来组织代码和数据的。下面给出一个标准的、以MASM为基础的、用完整段定义的汇编语言源程序的建立执行过程和结构形式:§3.1汇编语言程序结构3汇编语言程序设计编程过程§3.1汇编语言程序结构4汇编程序对源程序作二次扫描:以发现源程序中的语法错误,给出出错信息。得到无语法错误的OBJ文件(二进制)给出列表文件。展开宏指令,处理伪操作。§3.1汇编语言程序结构5经LINK:将OBJ文件与库文件或其它目标文件连接成可执行文件(EXE文件),EXE文件由DOS装入存储器并在机器上运行。§3.1汇编语言程序结构

3、6DATASEGMENT[USE16/USE32];定义数据段;数据定义伪指令序列DATAENDSSTACKSEGMENT[USE16/USE32]STACK;定义堆栈段;数据定义伪指令序列STACKENDSCODESEGMENT[USE16/USE32];定义代码段ASSUMECS:CODE,SS:STACK,DS:DATA,ES:DATA;段寄存器说明START:MOVAX,DATA;取数据段基址MOVDS,AX;建立数据段的可寻址性MOVES,AX;建立附加数据段的可寻址性;核心程序段:指令序列MOVAH,4CH;返回操作系统INT21HCODE

4、ENDSENDSTART·········§3.1汇编语言程序结构7第三章汇编语言程序设计§3.1汇编语言程序结构§3.2伪指令§3.3语句格式§3.4程序设计举例8汇编语言程序的语句除指令语句外,还可以由伪指令语句和宏指令语句组成。本节讨论如下常用的伪指令:§3.2.1逻辑段定义伪指令§3.2.2符号定义伪指令§3.2.3数据定义伪指令§3.2.4标号定义伪指令§3.2.5过程和宏定义伪指令§3.2伪指令9采用段定义伪指令可具体控制汇编程序(MASM)和连接程序(LINK)在内存中组织代码和数据的方式。主要包括段定义语句和段寄存器说明语句。(一)、段

5、定义语句(SEGMENT/END)格式:段名SEGMENT[定位类型][,组合类型][,字长选择][,‘类别’](段体)段名ENDS§3.2.1逻辑段定义伪指令10段定义语句有四种可选择的属性,为源程序的汇编和连接提供必要的信息。1、定位类型用于指定该段地址的起点边界类型,如下表:定位类型段起始地址含义BYTE(字节)可任意WORD(字)偶数DWORD(双字)4的倍数PARA(节)16的倍数PAGE(页)256的倍数§3.2.1逻辑段定义伪指令112、组合类型告知LINK程序本段与其它段的组合连接关系。若缺省,表示该段为独立段。共有如下5种组合类型:①

6、PUBLIC②STACK③COMMON④MEMORY⑤AT表达式注:②STACK只是指定该段为堆栈段,连接时LINK程序自动给SS和SP赋初值,若未加此类型,则需在程序中给SS和SP赋初值;§3.2.1逻辑段定义伪指令123、字长选择定义段中使用的偏移地址和寄存器的字长,只适用于含有.386、.486、.586语句的段:USE16——16位寻址方式,最大段长度为64KB;USE32——32位寻址方式,最大段长度为4GB。4、‘类别’同类别的段在连接时按先后顺序连接起来。§3.2.1逻辑段定义伪指令13(二)、段寄存器说明语句ASSUME格式:ASSUM

7、E段寄存器:段名[,段寄存器:段名,…]功能:说明源程序中定义的段由哪个段寄存器寻址。说明:ASSUME语句设置在源程序的代码段中,紧跟代码段定义语句之后。其中段寄存器:段名说明分配情况:segmentregistername:segmentname必须是CS,DS,SS,ES,FS,GS必须是由SEGMENT定义的段名§3.2.1逻辑段定义伪指令14举例:STACKSEGMENT;定义堆栈段SPNDB200DUP(?);堆栈长度为200个字节STACKENDSCODESEGMENT;定义代码段ASSUMECS:CODE,SS:STACK…START:

8、MOVAX,STACK;取堆栈段基值MOVSS,AX;建立堆栈段基址MOVSP,SIZESPN

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。