![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
汇编
无名至尊
这个作者很懒,什么都没留下…
展开
-
汇编语言王爽第十部分(标志寄存器)
标志寄存器标志寄存器和其他寄存器不一样,其他寄存器是用来存放数据的,都是整个寄存器具有一个含义。而flag寄存器是按位起作用的,也就是说,它的每一位都有专门的含义,记录特定的信息。8086CPU的flag寄存器的结构:ZF标志第6位是ZF,零标志位(zero flag)。PF标志第2位是PF,奇偶标志位。SF标志第7位是SF,符号标志位。CF标志第0位是CF,进位标志位。在...原创 2020-02-14 20:08:13 · 252 阅读 · 0 评论 -
汇编语言王爽第九部分(使用LIB分文件编写课题设计1)
课题设计1需要编写3个函数,分别用三个asm保存,使用分文件的好处是lib文件里面包括了一些常用的库函数,常用的操作等等,这样在需要这些东西时,就不需要重复一直打这些代码。编写show.asmpublic showassume cs:codecode segmentshow proc far push ax push bx push cx push ...原创 2020-02-14 19:45:25 · 218 阅读 · 0 评论 -
汇编语言王爽第六部分(数据传输指令,mov,push,pop,pushf,popf)
数据传输指令实现寄存器和内存,寄存器和寄存器之间的单个数据传送。mov(1)MOV 寄存器 , 寄存器/内存单元/段寄存器/立即数(2)MOV 内存单元 , 寄存器/段寄存器/立即数(3)MOV 段寄存器, 寄存器/内存单元非法指令(1)操作数类型不一致,例如mov ax,blax是十六位寄存器,bl是8位寄存器(2)不能修改cs段寄存器内容(3)不能在内存之间直接传...原创 2020-02-11 18:35:46 · 3534 阅读 · 1 评论 -
汇编语言王爽第五部分(数据处理)
汇编数组将datasg中的第一个字符串转为大写,将第二个字符串转为小写assume cs:code,ds:datasgdatasg segment db 'BaSic' db 'MinIx'datasg endscodesg segmentstart: mov ax,datasg mov ds,ax mov bx,0 mov cx,5 s: mov al,[bx...原创 2020-02-11 13:01:11 · 515 阅读 · 0 评论 -
汇编语言王爽第四部分(内存单元)
内存单元1,内存单元的地址2,内存单元的长度mov ax,2000hmov ds,ax;段地址设为2000mov bx,1000h偏移地址从1000开始mov ax,[bx];将21000h的字转移到ax中add bx,2;偏移地址+2mov [bx],ax;将ax中的字转移到21002h中add bx,2;偏移地址+2mov [bx],ax;将ax中的字转移到21004h中...原创 2020-02-11 11:30:11 · 1934 阅读 · 0 评论 -
汇编语言王爽第八部分(编写子函数,call和ret配合使用)
问题:在使用div做除法的时候,可能会出现结果的商过大超过寄存器所存储的范围,这个错误称为除法溢出。解决除法溢出有一个公式:X:被除数,范围:[0, FFFFFFFF]N:除数,范围:[0, FFFF]H:X高16位,范围:[0, FFFF]L:X低16位,范围:[0, FFFF]int():描述性运算符,取商,比如,int(38/10) =3rem():描述性运算符,取余数,比如...原创 2020-02-14 14:55:51 · 458 阅读 · 0 评论 -
汇编语言王爽第七部分(算术运算指令,加减乘除)
算术运算指令实现寄存器和内存的数据的算术运算。结果影响标志寄存器的内容。add和sub求和指令add ax,bx ax=ax+bx减法指令sub ax,bx ax=ax-bx(1)add/sub 寄存器 , 寄存器/内存单元/立即数(2)add/sub 内存单元 , 寄存器(3)运算对象的类型要匹配adc带进位加法指令,它利用CF位记录进位值功能:操作对象1=操作对象...原创 2020-02-11 19:13:52 · 989 阅读 · 0 评论 -
汇编语言王爽第三部分(第一个程序)
一个源程序从写出到执行的过程下面以一段简单代码为例主函数main.asmextrn madd:far,msub:far;与C语言extern类似,从其他文件调用assume cs:code,ss:stack;用assume将code和cs,ss和stack联系起来stack segment db 128 dup(0)stack endscode segmentstart:...原创 2020-02-09 23:29:17 · 184 阅读 · 0 评论 -
汇编语言王爽第二部分(段的基本知识)
物理地址CPU访问内存单元时,要给出内存单元地址,所有的内存单元构成的存储空间是一个一维的线性空间,每一个内存单元在这个空间都有唯一的地址,这叫物理地址。16位结构的CPU(1)运算器一次最多可以处理16位的数据(2)寄存器最大宽度为16位(3)寄存器与运算器的通路为16位8086CPU采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址。物理地址=段地址*16+偏...原创 2020-02-09 10:55:20 · 193 阅读 · 0 评论 -
汇编语言王爽第一部分(基本知识)
汇编语言的组成(1)汇编指令:机器码的助记符(2)伪指令:由编译器执行(3)其他符号:±*/等由编译器执行CPU对存储器的读写(1)存储单元的地址(2)读或写命令(3)数据地址总线(1)CPU是通过地址总线来指定存储器单元的。(2)一个CPU有N根地址线,寻址2的N次方个储存单元。数据总线(1)CPU与内存其他器件的数据传输是通过数据总线来进行的。(2)8根数据线一次...原创 2020-02-08 21:12:31 · 138 阅读 · 0 评论