版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一章预备知识汇编语言是面向机器的低级语言:和其他计算机语言相比,能够充分利用计算机硬件特性;随机 器的不同而不同。学习汇编语言必须做到:了解特定机器的硬件;了解其数据类型的表示方法;了解其指 令系统等。本章的内容包括:什么是汇编语言;汇编源程序举例;汇编和调试过程;寄存器组1.1机器语言与汇编语言人们用计算机语言操纵计算机,和计算机交流信息。一般来说, 计算机语言可以分为以下几类:低级语言是面向机器的,为特定机器提出的;高级语言是面相人的,接近于自然语言,为了方便人们使用提出的。,针对特定机器的机器语言,低级语言( 8031汇编语言U汇编语言 Z Z80汇编语言 8086汇编语言BASIC语
2、言FORTRAN 语言C语言计算机语言 高级语言 5四代语言(VB、PB、ASP等)机器语言机器指令:能够被计算机识别,并能直接加以执行的语句。机器语言:由机器指令构成的集合。机器指令也叫做硬指令,不同类型的CPUTB有自己特有的、一 定数量的基本指令,组成其特有的机器语言。机器指令用二进制代码来表示,这样才能够被计算机识别并直 接执行。机器指令的一般形式为:操作码 地址码例如:1011 1000 操作码:1011, MOV0111 1111 目的操作数:1000, AX0000 0000 源操作数:0000 0000 0111 1111 立即数I完成操作:MOV AX, 7FH; 7FH A
3、X操作码指出了运算的种类,如数据传送、加减运算等。地址码指出了参与运算的操作数和运算结果的存放位置。用机器语言编程,就意味着要用二进制数0和1编写程序。这 样做效率很低,而且容易出错。但为了能够充分利用硬件特性,在 一些时候仍然需要用低级语言编程,因此人们想办法对机器语言进 行改进,提出了汇编语言。此后很少直接使用机器语言了。汇编语言从本质上看,汇编语言是一种符号化的机器语言:用助记符表示机器指令的操作码;用变量代替操作数的存放地址;用在语句前加一个标号,来代表该指令的存放地址。汇编语言的主要操作与机器指令一一对应,是一种用符号书写 的(不再是二进制代码)、并遵循一定语法规则的计算机语言。例
4、如:MOV AX, 7FHMOV BX, 1234HADD AX, BX汇编语言是为了方便用户使用而设计的一种符号语言, 并不能 直接被计算机识别,必须将汇编语言程序翻译成机器语言程序 (也 叫目标程序),才能由计算机所执行。翻译过程的图形表示:汇编程序不同于汇编语言程序。汇编语言程序是用汇编语言写 的程序,汇编程序是翻译汇编语言程序的加工程序。汇编程序可分为:ASI小汇编程序,占有较小的存贮区,但功能较弱,没有宏功能。MAS宏汇编程序,需要较大的存贮区,但功能强大,具有 宏能力。这门课使用的是宏汇编程序。宏,是指用一个宏指令名字代替程序中重复出现的一组语句,在其它的地方, 可以用宏指令名字及
5、不同的参数来调用。宏的功能类似于子函数,但实现方式不同。此外,汇编语言还必须指出:程序从什么地方开始、什么时候结束、数据放在哪里、数据类型是什么、临时存贮区等,这需要一组另外的指令指示 MASM 工作,这种指令叫做伪指令。为什么要学习汇编语言?汇编程序产生的目标程序简短, 占用的存贮空间小,执行速度快,适合于编写过程控制、多媒体接口、通讯程序。有些无法用高级语言实现的操作,可以由汇编完成。汇编源程序举例举例完整源程序为了对汇编语言有具体的理解,下面编写一个简单的程序:.386;堆栈段STACK SEGMENT USE16 STACK ;段名和组合类型DB 200 DUP(0);堆栈的大小为 2
6、00 个字STACK ENDS;数据段DATA定DATA;代码段CODEES:DATASTART:SEGMENT USE16SUM DW ?; 段为 16 位段;SUM 为字变量,初值不NEXT:ENDSSEGMENT USE16ASSUME CS:CODE, SS:STACK, DS:DATA,MOV AX, DATAMOV DS, AXMOV CX, 50MOV AX, 0MOV BX, 1ADD AX, BXINC BXINC BXDEC CX;数据段首址送DS;循环计数器置初值;累加器置初值;1 7 BX;(AX)+(BX) -AX;(BX)+2 - BX;(CX)-1 -CXJNE
7、NEXT ;(CX)?转 NEXT MOV SUM, AX ;(CX)=0 累力口结果-SUM MOV AH, 4CHINT 21H;返回 DOSCODE ENDSEND START;源程序结束语句。程序运行时,启动地址为 START分段在该例中,一共定义了三个段:堆栈段、数据段和代码段。.386;堆栈段STACK SEGMENT USE16 STACK STACK ENDS;数据段DATA SEGMENT USE16 DATA ENDS;代码段CODE SEGMENT USE16ASSUME CS:CODE, SS:STACK, DS:DATA, ES:DATASTART: MOV AX ,
8、 DATAMOV DS, AX MOV AH , 4CHINT 21HCODE ENDSEND START语句该例中的源程序由一系列语句组成。语句的一般格式为:名字 操作符 操作数或地址;注释 操作符可分为 3 类:指令伪指令宏操作数也可分为 3 类:数值寄存器内存常用指令:MOV AX, 0ADD AX, BXINC AXDEC CX等汇编和调试过程一、 汇编过程必备软件MASM.EXELINK.EXETD.EXE其他:文本编辑器、 DOSBOX 等命令MASM DEMO.ASM汇编 DEMO.ASM ,应该生成MASM.OBJLINK DEMO.OBJ连接DEMO.OBJ ,应该生成 MA
9、SM.EXETD DEMO.EXE调试 DEMO.EXE调试程序Turbo Debugger的使用1.如图,TD的界面可分为:菜单代码操作区 数据操作区寄存器操作区标记寄存器操作区 堆栈段操作区标记有:当前指令标记当前栈顶标记TD 的主要操作单步执行:F7, F8设置(取消)断点: F2直接执行:F9查看数据区查看用户界面修改数据、指令、寄存器内容1.4 Intel 8086 微处理器简介汇编语言是一种面向机器的低级语言,要学好它,必须对计算机硬件结构有一个初步了解。微型计算机的组成微型计算机主要由微处理器( CPU) 、主存贮器( MM ) 、外部设备及互连部件组成。如下图所示:存贮器:存放
10、程序以及数据、信息、中间结果外设:I/O设备和大容量存贮器。I/O设备包括显示器、打印机、 键盘等。Intel 80 x86内部结构个人电脑的发展,经过了 8086、80186、8028& 80386等几代 产品,Intel 80 x86是1985年推出的32位处理器,按功能可分为执 行部件(EU)和总线接口部件(BIU)。其中运算器执行所有的算 术和逻辑运算指令;控制器负责计算机的控制工作(如取出指令、 发出各种控制命令)。其内部结构如下所示:分页部件执行部件寄存器组标志寄存器算避部件总线接口部件*主存*外部设备各部分的功能:.总线接口部件:是CPU与整个计算机系统之间的高速接口功能:接受所
11、有的总线操作请求,并按优先权进行选择,最大限度地利用本身的资源为这些请求服务。.执行部件:寄存器组、标志寄存器、算逻部件、控制部件等组成功能:从译码指令队列中取出指令并且执行(1)数据寄存器组(EAX, EBX, ECX, EDX)EAX (累加器)AccumulatorEBX (基址寄存器)BaseECX (计数寄存器)CountEDX (数据寄存器)Data作用:用来保存操作数、运算结果或作指示器、变址寄存器,减少存取操作数所需要的访问总线和主存储器的时间,加快运行速度。EAXAHAL累加器(AX)EBXBHBL基址寄存器(BX)ECXCHCL计数寄存器(CX)EDXDHDL数据寄存器(D
12、X)ESISI源变址寄存器EDIDI目的变址存存器EBPBP堆栈基址茅存器ESPSP堆栈指示器3116158 70汪息:它们既可作32位、16位寄存器,也可作8位寄存器使用16位和8位的寄存器不能作指示器或变址寄存器。(2)指示器变址寄存器组(ESI、EDI、ESP、EBP)作用:一般用来存放操作数的偏移地址,用作指示器或变址寄 存器。ESP (Stack Pointe”称为堆栈指示器,存放的是当前堆 栈段中栈顶的偏移地址;EBP(Base Pointer)为对堆栈操作的基址寄存器;ESI(Source Index),称为源变址寄址器;字符串指令源操 作数的指示器;EDI(Destinatio
13、n Index),称为目的变址寄存器;字符串指 令目的操作数的指示器.指令预取部件和指令译码部件指令预取部件:通过总线接口部件,把将要执行的指令从主存 中取出,送入指令排队机构中排队。指令译码部件:从指令预取部件中读出指令并译码,再送入译 码指令队列排队供执行部件使用。IP3116 150指令指示器:它总是保存着下一条将要被CPU执行的指令的偏 移地址,其值为该指令到所在段首址的字节距离。.分段部件和分页部件(1)使用分段部件和分页部件实现虚拟存储空间映射到物理存 储空间程序员使用二维地址,即“段地址:段内偏移地址”分段部件段地址:段内偏移地址 一维的线性的地址分页部件虚拟的线性的地址主存储器
14、的物理地址(2)段寄存器用来保存段首地址代码段寄存器CS堆栈段寄存器SS数据段寄存器DS附加段寄存器ES附加段寄存器FS附加段寄存器GS.指令执行过程:(1)指令预取部件和指令译码部件由EIP取得指令的偏移地址EIP增量,形成下一条指令的地址(2)分段部件和分页部件由分段部件和分页部件,将“ CS : EIP”转换为指令的物理地(3)总线接口部件从主存中取指令送到预取指令队列4) CPU 按序从预取指令队列中取出指令送到指令译码部件。5) 指令译码部件译码,执行部件执行指令;6) 执行过程中若需要取主存操作数,从指令中取得操作数偏移地址7) 分段部件和分页部件由分段部件和分页部件,将“段首址: 偏移地址”转换为操作数的物理地址) 总线接口部件从主存中取数据送到执行部件80 x86 的三种工作方式实方式(实际地址)操作相当于一个可进行32 位快速运算的8
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026石油化工产业政策调整对产量影响及市场布局咨询研究报告
- 2026中国医药研发行业市场现状专利竞争格局评估报告
- 2026汽车制造业行业发展趋势深度剖析及投资机会评估与商业规划研究报告
- 2026人工智能产业技术专利保护与投资合理性分析报告
- 2026中国石油炼化设备行业市场现状供需分析及投资评估规划分析研究报告
- 2026中国物联网芯片市场供需分析与未来发展前景预测报告
- 2026中国在线医疗行业市场现状技术发展评估规划报告
- 2026汽车整车制造行业市场供需分析及投资效益评估规划发展研究报告
- 2026中国智能机器人行业市场发展供需现状及投资前景规划研究报告
- 2026中国与全球零售电商行业市场发展分析及前景趋势预测研究报告
- 2026福建福州古厝运营服务有限公司招聘5人考试模拟试题及答案详解
- 智慧医疗分级评价方法及标准(2025版)
- 2026湖南娄底涟源市明宏水利电力开发有限公司招聘12人笔试参考题库及答案详解
- 矿井灾害预防与应急处理全流程培训
- 北海市2025广西北海市招聘县级政府统计机构统计协管员(协统员)6人笔试历年参考题库典型考点附带答案详解
- 【中建】机电工程创优策划方案
- 视频监控系统工程监理实施细则
- DB11∕T 1553-2025 建筑室内装配式装修技术规程
- 机电设备安装项目施工进度计划模板
- GB/T 5782-2025紧固件六角头螺栓
- 园林供电照明设计
评论
0/150
提交评论