2022年2022年汇编语言程序设计知识点-v. .pdf

上传人:Che****ry 文档编号:34252875 上传时间:2022-08-15 格式:PDF 页数:5 大小:61.42KB
返回 下载 相关 举报
2022年2022年汇编语言程序设计知识点-v. .pdf_第1页
第1页 / 共5页
2022年2022年汇编语言程序设计知识点-v. .pdf_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《2022年2022年汇编语言程序设计知识点-v. .pdf》由会员分享,可在线阅读,更多相关《2022年2022年汇编语言程序设计知识点-v. .pdf(5页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第一章1、什么是汇编语言?2、汇编语言程序设计过程:编辑源程序,编译(汇编),连接,运行调试3、汇编语言特点?与机器语言一一对应,直接操作硬件,高效率(空间和时间,运行速度快,目标代码短,占用存储空间少)4、数制转换第 2 章 8086 计算机组织结构1、计算机硬件系统组成:CPU 、存储器、输入输出设备。2、CPU 组成:运算器、控制器、寄存器,运算器和控制器由芯片设计时设计好,不可做任何改动,程序设计员仅能在程序里使用寄存器,寄存器都有相应的名字,如AX,能在程序里直接使用寄存器是汇编语言区别于高级语言的最重要特点,这样就可以直接控制硬件系统。3、总线结构: 数据总线、 地址总线、 控制总

2、线。 数据总线分8 位、16 位、32 位和 64 位等,多少位机就是以数据总线来划分,比如8 位机、 32 位机。 8086 机是 16 位机,但地址总线是 20 位,地址总线数量决定了内存寻址空间的大小,如8086 有 20 位地址线,那么寻址空间是: 220=210*1K=1M ,8086 最大寻址空间为1MB,即地址范围:00000HFFFFFH 。控制总线主要传送控制信息,如读写操作,读写操作的主体是CPU,读操作是指CPU 从内存或外设读取数据,写操作是指CPU把数据写到内存或外设中。4、存储器:存储器的最小单元是字节(Byte,由 8 个位组成),字节的多少就是存储器的容量。每一

3、个字节单元都有一个唯一的编号,这个编号就是字节单元的地址,此地址就是物理地址,对于8086 而言,编号的形式为:XXXXXH ,如 85421H。如果要读写存储器,必须知道某一个字节单元的地址。多个字节单元可以组合成更大的单元(数),比如 2 个字节单元组合成一个字(Word) ,4 个字节单元组合成一个双字(Double Word )等,规定:这个组合后的大单元是以最小字节单元地址为自己的地址。如85421H 字节单元内容为12H,85422H字节单元内容为34H,那么以 85421H 地址的字单元的内容就是3412H。地址取最小字节单元的地址为大单元的地址。内容排序按照“高高低低”原则:高

4、字节放在高地址里,低字节放在低地址里。详细请参看2.3 节( P30 页)5、8086CPU寄存器(1)通用类: AX(AH,AL) 、BX(BH,BL) 、CX( CH,CL ) 、DX(DH,DL)(2)段寄存器类:CS 、DS、ES 、SS (3)与偏移地址相关类:SI 、DI、SP 、BP (4)特殊类: IP、FLAGS 所有寄存器都是16 位大小,通用类的16 位又可看成2 个 8 位的寄存器组成,区分为高8位( High)和低 8 位( Low) ,因此取名为AH 和 AL,其他类似。CS :存放代码段段地址,DS:存放数据段段地址,SS :存放堆栈段段地址,ES :存放数据附加

5、段段地址,一般作为DS的辅助使用,比如在一段程序里需要用到2 个不同数据段的数据时,其中一个数据段段地址存放在DS中,另一个存放在ES中。SI、DI:一般用于变址寻址方式,如BX+SI 、 BX+DI,SP :堆栈段中堆栈栈顶的偏移地址,不可修改,由SS:SP 逻辑地址始终指向堆栈的栈顶。详细参看 2.3.2,P32 页BP :一般也用于堆栈,可以作为SP的备份,通常也是用SS:BP逻辑地址表示,BP可以随意修改,因此通过SS:BP 可以访问堆栈的任何地方。此外,BP还与 BX一样,可以作为基地址名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - -

6、- - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - 方式进行寻址,比如BP+SI 、BP+DI,但此时访问的数据是指堆栈段里的,如果要访问数据段的必须明显写出DS ,如 DS: BP+SI 、DS:BP+DI IP:指令指针,有CS:IP逻辑地址始终指向下一条即将执行指令的地址,如果要使程序进行跳转,必须改变CS和 IP 的值,但CS和 IP寄存器不能直接修改(比如用MOV) ,只能通过跳转指令来修改,如JZ、JMP、LOOP等。FLAGS :标志位寄存器,记录CPU运算器的状态,可以进行位操作,CF :进位标志, ZF:运算结

7、果0 标志, SF:运算结果符号标志,OF:溢出标志,其他的暂时不需要记。6、分段机制8086 的数据线为16 位,地址线为20 位,寄存器也是16 位的,由于读写存储器(内存)单元时,需要知道存储器单元的地址,如XXXXXH ,这个地址如何在16 位的数据线上传输,传输到寄存器( XXXXH )里,如何在寄存器里保存,用一个寄存器是保存不了的,必须用2 个寄存器,第一个寄存器存放的地址XXXXH ,我们称为段地址,放在CS 、DS、ES和 SS中。物理地址 =段地址 *10H+偏移地址(H,全部用十六进制表示)物理地址:xxxxxH,逻辑地址:xxxxH:xxxxH,逻辑地址表示方法,冒号前

8、面的叫做段地址,后面的叫偏移地址。简单换算方法:逻辑地址转物理地址方式是将段地址后面加个0,与偏移地址相加即可第三章指令系统与寻址方式1、指令格式:如Tab: Mov ax, bx ; 注释Tab是标号,标号后必须紧跟一个冒号,标号代表当前指令在内存中的位置,编译成二进制代码后, 标号就不存在了;Mov 是操作码, 表示当前指令的作用、功能;ax 是目的操作数,bx 是源操作数,两者表示参与指令操作的数,目的操作数存放最后指令操作的结果;分号后边的是注释,说明当前指令的过程,方便程序的阅读。因此可以写成:“ 标号:操作码目的操作数,源操作数; 注释”“标号,注释”不一定每条指令都有,操作数也可

9、能有一个,也可能没有,也可能有两个。2、提供操作数的方式: (1)立即数;( 2)通过寄存器(一般指通用寄存器); (3)通过内存(必须要提供或者能计算出内存的地址)目的操作数不能是立即数,源操作数和目的操作数不能同时为内存操作数。3、寻址方式:将操作数来自于不同的地方进行分类:立即数寻址、寄存器寻址、内存寻址(1)立即数寻址:操作来自立即数,即立即数寻址,如mov ax, 1234H,1234H 为立即数。(2)寄存器寻址:操作数来自于寄存器,如上述指令中的ax,即为寄存器寻址。(3)内存寻址:操作数来自于内存,需要给出或者计算出内存的地址,根据获得这个地址的方式不同,又分为以下几种方式:1

10、)直接寻址:直接给出内存地址(一般是偏移地址),如 mov ax, 1000H ,1000H 就是内存地址。2) 寄存器间接寻址: 内存地址事先放在寄存器里,要通过取出寄存器里的值才能得到地址,如 mov ax, bx ,内存的地址在bx 里,假设bx 里的值是 1200H,那么指令首先通过bx 得到1200H,再去内存找到1200H 地址。存放间接地址的寄存器只能是:bx,bp,si,di 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 5 页 - - - - - -

11、- - - 3)寄存器相对寻址:在寄存器间接寻址的基础上有个常数偏移量,如 mov ax, bx+1000H ,假设 bx 里的值是1200H,那么指令首先通过bx 得到 1200H,再去内存找到1200H,然后基于这个 1200H 地址,向后再偏移1000H, 才能得到真正要的数,所以实际上的地址是1200H + 1000H。常量对应的是“相对”。有多种写法:bx+1000H、1000Hbx、bx+1000H,都可以,使用的寄存器也只能是:bx,bp,si,di 4)基址变址寻址方式:在寄存器相对寻址里的“相对常量”放在另一个寄存器里,如mov ax, bx+1000H,如果事先将1000H

12、 放在 SI寄存器里,那么指令就变成:mov ax, bx+si,这就是基址变址寻址方式,前面的bx 表示基地址,si 表示变化的地址,把两个寄存器的值相加才是要的内存地址,也可以写成mov ax, bxsi ,经常采取这种方式来遍历内存数据,因为只要改变si 的值即可。基地址只能用bx、bp,变地址只能用si、di。5)相对基址变址寻址方式:在基址变址寻址方式的基础上,再加一个常量即可,如 mov ax, bx+si+2000H,把两个寄存器的值和常量相加才是要的内存地址,也可以写成mov ax, 2000Hbx+si或者mov ax, 2000Hbxsi ,基地址只能用bx、bp,变地址只

13、能用si、di。4、无条件转移指令:jmp 标号标号表示目的地址, 标号表示对应指令在内存中的地址,一般由 CS和 IP 组合表示,如 CS:IP ,CS是代码段寄存器,IP是指令指针寄存器。如果转移不涉及到CS的变化,表示段内转移,如果CS必须改变,就是段与段之间的转移。如果代表指令地址的标号的值事先放在寄存器或者某一个内存(一般通过寄存器间接表示)里,也可以用寄存器或内存地址代表标号,如jmp bx,执行 jmp 指令后, IP寄存器的值就等于 bx 的值了,如 jmp bx , 先通过 bx 找到内存, 再从内存中取出值来才是要转移的地址。如果要从内存中取出4 个字节来改变CS 和 IP

14、,那么需要在前面加DWORD PTR ,如jmp DWORD PTR bx 。5、指令系统(1)数据传送类:mov push/pop xchg LEA(offset) (2)算术运算类: ADD,ADC,INC,SUB,SBB ,DEC ,NEG ,CMP,MUL,IMUL,DIV,IDIV,CBW,CWD (3)逻辑运算类:AND,OR,NOT,XOR ,TEST (4)移位指令类:SAL ,SAR ,SHL ,SHR ,ROL ,ROR ,RCL ,RCR (5)条件转移类:JZ ,JNZ ,JC ,JNC ,JS ,JNS ,JA,JB JG ,JL 第四章程序结构1、完整段定义程序框架

15、2、伪指令常量定义:常量名EQU 表达式,如X EQU 100 ,常量不占数据段内存地址变量定义:变量名类型 初始值,如Y db 1,2,3,类似高级语言中的数组定义,初始值可以是数字、表达式、字符、字符串等。类型有: DB,DW,DD 初始值可以是?$,?SEG ,OFFSET ,TYPE ,LENGTH ,SIZE ,PTR (BYTE , WORD,DWORD)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 5 页 - - - - - - - - - 第五章顺序、分

16、支与循环程序设计1、分支:二分支结构,多分支结构用条件转移指令实现程序的分支,用跳转表法实现多分支结构构造条件指令:CMP 转移指令: JC ,JNC ,JZ/JE ,JNZ/JNE ,无符号数比较大小(Above,Below,Equal) : JA,JB 有符号数比较大小(Great,Less,Equal) :JG ,JL 2、循环: Do-While 结构, While-Do 结构包括:循环初始化,循环体,循环控制三部分循环控制指令:LOOP ,用于明确知道循环次数的应用,类似于高级语言的FOR语句循环次数事先放在CX里,每次执行LOOP时,首先让 CX=CX-1 , 然后再检测CX是否等

17、于0,如果等于 0 就停止循环,不等于0 就继续循环。以下问题是否都搞清楚了?1、汇编语言特点、优势,汇编语言指令的组成?2、 编码及其含义, 比如一个数01000010B 可以有多种解释, 比如 96H 也有种描述; 压缩 BCD码、非压缩BCD码、及其转换。3、补码概念和计算,如01111110B 与 10000001B 哪个大?数制的转换,如64.8H= D = B,数表示范围(八位、十六位、有符号数、无符号数等)。4、计算机结构:由CPU、内存、输出输出接口组成,通过总线相连。CPU 由运算器、控制器和寄存器三部分组成。5、14 个寄存器:( AX、BX 、CX、DX) 、 (SI、D

18、I、SP 、BP) 、 (CS 、DS、ES 、SS ) 、 (IP,FLAGS ) ,每个寄存器的作用,特殊情况是什么?比如偏移地址只能是BX、BP 、SI、DI 来给出。6、内存数据存放方式, “高高低低” 原则,比如(30200H)=12H, (30201H)=34H, (30202H)=56H, (30203H)=78H,如果从30201H 地址取一个字是:5634H,给出数据,会画出内存数据的存放示意图。7、物理地址与逻辑地址概念与转换,物理地址:5 位的十六进制数表示,如12345H,逻辑地址为 2 个 4 位十六进制数表示, 如 1000:1234H, 转换:如段地址 3421H

19、, 偏移地址 5641H,那么物理地址是:39851H,此物理地址还可以表示为3900:0851H 或者 3000:9851H 等等, 那么如何选取段地址?(段地址的选取必须是物理地址的最后一位为0(十六进制) ) 。8、寻址方式, 7 类寻址方式(其实就是3 大类) ,比如 Mov ax, bx+10 源操作数的寻址方式是什么?9、基本指令功能,比如MOV 及运行结果,比如给出了数据段段地址和内存数据,要求根据 MOV 指令,给出某个特定寄存器里的值,如P92 的第 4 题。再比如:移位指令,左移右移(相当于乘除法)等,乘除法指令的理解与应用。10、逻辑运算, AND,OR,NOT,XOR

20、,TEST ,CMP,比如 AND AX,BX ,0AH 与 50H,AAH 与55H 特点。逻辑位运算,比如设置、清除、变反某个特定的位,寄存器清零、奇偶数检测与获得, XOR ,OR等。11、比较运算, CMP,TEST ,比如 TEST BX, 0203H 含义。12、DUP伪指令应用,EQU定义常数(立即数)13、字符及字符串定义方式DB(DW),string db “ Hello World ” ,一般不用DW 来定义14、JMP 跳转,跳转JZJCJS , “JMP 标号” , “JMP 寄存器”,等方式名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -

21、- - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 5 页 - - - - - - - - - 15、比较指令:有符号数比较大小,无符号数比较大小16、堆栈基本应用,SP指示的地址计算,结合子程序的堆栈传递参数,堆栈平衡方法“RET N” 。17、子程序应用,传递参数方法(寄存器传递、存储器传递、堆栈传递、地址表传递),程序段功能分析,入口参数与出口参数分析,子程序与宏汇编的异同等。18、宏汇编应用:宏定义、调用、展开,宏展开方法,带参数及其参数分析。19、中断概念,中断服务程序、中断矢量、中断矢量表、地址计算等。20、基本运算:求和、求平均值,找最大最小值,遍历内存空间比较,显示字符串方法等,多位数(32 位)的运算(如移位、 加减) 。 字符串读取与显示,字符进行转换 (大小写转换) ,数值统计等。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 5 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com