汇编语言部分知识点整理.doc

汇编语言部分知识点整理.doc

ID:57335517

大小:64.50 KB

页数:6页

时间:2020-08-12

汇编语言部分知识点整理.doc_第1页
汇编语言部分知识点整理.doc_第2页
汇编语言部分知识点整理.doc_第3页
汇编语言部分知识点整理.doc_第4页
汇编语言部分知识点整理.doc_第5页
资源描述:

《汇编语言部分知识点整理.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、8大通用寄存器:EAX累加器常用、放数据EBX基址寄存器常用、放地址ECX计数器少用、多用于循环操作、控制循环次数egloopEDX数据寄存器常用!放数据(要输出的字符串地址放在DX、字符的ASCII码放在DL里ESI源变址寄存器放源操作数(数组或字符串)的地址即指向他EDI目的变址寄存器放目的操作数(数组/字符串)的地址即指向他EBP基址指针寄存器一般不用,指向堆栈区域的数据,主要用于在子程序中访问通过堆栈传递的参数和局部变量ESP堆栈指针寄存器指向栈顶的数据,在涉及堆栈操作的指令中自加自减,一般不能自主变化。6大段寄存器:C

2、S代码段,存放程序中的指令代码SS堆栈段,指明程序使用的堆栈区域DS数据段,存放当前运行程序所用的数据ES附加数据段特别的:专为处理数据串设计的串操作指令必须使用附加数据段作为其目的操作数的存放区域。FS附加数据段GS附加数据段另外两个常用寄存器:FLAGS状态寄存器:CF(进位)ZF(零)OF(溢出)PF(奇偶)SF(符号)AF(调整一般不用)(DFIF)IP16位(EIP32位)指令指针寄存器,专门用来存放将要执行的指令在主存中的位置。特别的EIP有自动增量功能。一般不能改,不可中断。但可以调整其指令执行顺序实现循环MASM

3、操作符:对常量、变量、地址等进行操作的关键字。Eg:+-*/offset(取得变量的偏移地址)程序模板:;example.asminDOS.modelsmall.486.stack(可以没有).data(可以没有)……;数据定义eg:msgdb‘hello,Sarah!’.code;定义代码段.startup;程序执行开始,同时设置数据段寄存器DS指向程序的数据段……;主程序eg:movdx,offsetmsg……等等………….exit;程序执行结束,返回DOS……;子程序(可以没有).end;汇编结束调用DOS操作系统功能:E

4、g:movah,9;实现输出一个字符串(DX存放其字符串地址)Int21hEg:movah,2;实现输出一个字符(DL存放其ASCII码)Int21hEg:movah,0ah;实现输入一个字符串(DX指向其首地址=’offsetmsg+2’)Int21hEg:movah,1;实现输出一个字符串(AL存放输入字符的ASCII码)Int21h;调用指令,不可少!编译连接:MLeg101.asm运行:eg101.asm常用的地址和类型操作符:属性操作符作用地址[]将括起的表达式作为存储器的地址指针$返回当前偏移地址offset返回变量

5、名所在段的偏移地址类型(DBDWDDDFDQDT)12类型名PTR变量名将变量名按照指定类型使用Type变量名返回一个字量数值,表明变量名类型Lengthof变量名返回整个变量的数据项数Sizeof变量名返回整个变量占用的字节数Eg:Movbx,wvar[2]Movedx,$Movbx,offsetxMovax,wordptrbvarMovbx,typebvarmovsi,lengthofarrayMovdi,sizeofarray数据寻址方式——如何访问操作数1立即数寻址:立即数:已经随指令代码进入处理器的数据,可直接使用。只

6、用于源操作数;2寄存器寻址:数据已经事先保存在处理器的寄存器里。寄存器操作数(使用寄存器名表示他保存的数据。)可同时或单独用于目的/源操作数。要保持前后类型一致(同样长度)。3存储器寻址:数据还在主存中,需要通过[段基地址]:[偏移地址]默认:一般数据在DS段寄存器;(有效地址EA——偏移地址下同)读取指令在CS段寄存器;(EIP)堆栈操作在SS段寄存器;(ESP)EBP、ESP为基地址的数据访问在SS段寄存器;(有效地址EA)串指令源操作数在DS段寄存器;(ESI)串指令的目的操作数在ES段寄存器;(EDI)[段基地址]由默认

7、或指定的段寄存器指明;所以指令只需说明偏移地址。存储器操作数寻址使用的偏移地址常被称为有效地址(EA)[偏移地址]32位有效地址=基址寄存器+(变址寄存器*比例)+位移量-32位基址寄存器均可;变址寄存器不能是ESP;比例=1/2/4/8字节;位移量是8/32位16位有效地址=基址寄存器+变址寄存器+位移量基址寄存器只能是BX/BP;变址寄存器只能是SI/DI;位移量是8/16位有符号方式分类如表:直接寻址Movax,count;count是变量寄存器间接寻址Moval,[bx];bx中放的是地址,[bx]代表地址指向的数据(类

8、型不确定),所以必须有明确类型的操作数eg:al;相当于:MOVAL,DS:[2000H]寄存器相对寻址MOVESI,[EBX+4]MOVEAX,COUNT[ESI];变量count的偏移地址+[ESI]变址寻址MOVEDI,[EBX+ESI]MOVEAX,[E

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

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

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