汇编语言串讲(已修正错误)

汇编语言串讲(已修正错误)

ID:33585303

大小:485.85 KB

页数:35页

时间:2019-02-27

汇编语言串讲(已修正错误)_第1页
汇编语言串讲(已修正错误)_第2页
汇编语言串讲(已修正错误)_第3页
汇编语言串讲(已修正错误)_第4页
汇编语言串讲(已修正错误)_第5页
资源描述:

《汇编语言串讲(已修正错误)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、汇编语言考前复习李沛奇今天的主要内容有理论姿势:1.数制转换2.数据类型3.寄存器4.寻址方式编写汇编代码:1.常用命令回顾2.分支/循环3.子程序设计4.常用中断具体实例(代码):1.数制转换2.字符串处理3.文件操作数制转换A进制转化为B进制•首先把A进制数转化为16进制数,再转化为B进制数。????=?∗?3+?∗?2+?∗?1+?∗?03210?3210(其实按权展开得到的是十进制数,但储存成了16进制。)数制转换N转化为B进制数N不断除以B,直到N为0。将余数倒过来写。6%2=06/2=3

2、3%2=13/2=11%2=11/2=0(?)??=????数据类型字节DB两个16进制位00H~FFH字DW四个16进制位0000H~FFFFH双字DD八个16进制位有符号数无符号数(数电讲过)有符号数二进制最高位是符号位。DB表示有符号数的范围-128~127DB表示无符号数的范围0~255寄存器四个通用寄存器AX,BX,CX,DX•每个可以储存4个16进制位(32个2进制位)•每个又分为H和L两个8位寄存器。•例如AX=3D4CH,那么AH=3DH,AL=4CH两个常用的地址寄存器SI,DI•

3、通常存放偏移地址四个常用的段寄存器CS,DS,ES,SS•分别存放代码段、数据段、附加段、堆栈段的基址标志寄存器CFSFZFOFAFPFDFIFTF内存分配8086CPU的寻址空间是???,需要用5位16进制数表示。00000H~FFFFFH(物理地址)但是寄存器最多只能表示4位16进制数。那么至少需要两个寄存器中数据才能确定一个地址。我们定义两个4位16进制数表示地址:段地址、偏移地址。段地址*10H+偏移地址=物理地址076AH:0005H=076A5H段地址偏移地址物理地址内存分配每个段最小1

4、6Byte,最多64KByte。且一定是16Byte的整数倍。数据在每个段中连续储存。每个地址里的数都是db类型的。寻址方式•立即寻址操作数直接写在指令中。例如MOVAX,1234•寄存器寻址操作数在寄存器中例如MOVAX,BX•直接寻址操作数在储存器中,[]中是数值例如MOVAX,[1234H]MOVAX,VALUE(VALUE是符号地址)•寄存器间接寻址寄存器存放的是操作数的地址MOVAX,[BX]方括号里的只能是BX,SI,DI,不可以是别的寄存器。寻址方式•寄存器相对寻址[]中是基址/变址寄

5、存器+位移量例如MOVAX,[SI+1234H]•基址变址寻址基址寄存器通常指BX(BP几乎用不到,我们不考虑他)变址寄存器通常指SI和DI[]中是基址+变址例如MOVAX,[BX+SI]•相对基址变址寻址基址变址寻址的[]里加一个数字的偏移量例如MOVAX,[BX+DI+5678H]寻址方式小结•如果没有方括号[],那么操作数就是这个寄存器中的值。(符号地址除外)•如果有方括号[],方括号里的数是偏移地址,操作数是这个地址里的数据。•方括号前可以加段超越前缀,访问非数据段中的数据,例如MOVAX,

6、ES:[1234H].没有超越前缀默认是数据段的数据。写代码固定格式datasegment;data数据段dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,ax代码段;maincodemovah,4chint21hcodeends通常不需要附加段和堆栈段endstart数据段定义datasegmentstr1db‘Hello!$’;如果要输出到屏幕,加$str2db‘yibaikuai’lendb$-str1;$是当前地址nu

7、mdb12,12H;末尾带H是十六进制arrdb10dup(?);dup(?)重复tagdw1234H;16位整数用dwpathdb‘C:haha’,0;路径末尾必须加个0bufdb10,?,10dup(?)dataends常用指令•数据传送MOV•数据交换XCHG•偏移地址OFFSET•地址传送LEA•符号位扩展CBW/CBD•进栈PUSH•出栈POP算数运算•加法ADD/ADC(add)•减法SUB/SBB(subtract)•乘法MUL/IMUL(multiply)•除法DIV/IDIV(d

8、ivide)•加一INC(increase)•减一DEC(decrease)•求补NEG(negative)•比较CMP(compare)•压缩BCD码调整DAA/DAS逻辑运算•与AND•或OR•非NOT•异或XOR•逻辑左移SHL•逻辑右移SHR分支/循环•无条件跳转JMP(Jump)•相等/不相等JE/JNE(JumpEqual/……Not……)•大于/小于JG/JL(JumpGreater/JumpLess)•大于等于/小于等于JGE/JLE(JumpGrea

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

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

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