
汇编语言
小瓶盖的猪猪侠
这个作者很懒,什么都没留下…
展开
-
汇编语言之数据处理
机器指令数据处理的位置汇编代码指令前数据的位置mov bx,[0]内存单元 ds:0mov bx,axcpu内部,ax寄存器mov bx,1cpu内部,指令缓冲器先来介绍下等下需要用到的名词SA 表示段地址EA表示偏移量[bx]mov ax,[bx]bx中存放的数据作为一个偏移地址EA,他的默认SA为ds 上面则为 (ax) = ((ds)...原创 2019-10-26 11:29:50 · 723 阅读 · 1 评论 -
汇编语言之寄存器
cpu中,用16位寄存器来存储一个字,高8位存放再高位字节,低8位存放再低字节,在内存中存储时,由于内存单元是连续的,则一个字要用两个地址连续的内存单元存放DS和[address]...原创 2019-10-26 10:53:17 · 180 阅读 · 0 评论 -
汇编语言之物理地址
16位结构的cpu的特点运算器一次最多可以处理16位数据寄存器的最大宽度是16寄存器和运算器之间的通路是16位8086cpu给出物理地址的方法8086cpu有20位地址总线,可以传送20位地址,也就是1M寻址能力,而8086又是16位结构,在内部一次性处理、传输、暂时存储的地址为16位,则寻址能力只有64KB8086cpu采用一种内部用两个16位地址合成的方法形成20位的物理地址...原创 2019-10-26 10:25:36 · 1671 阅读 · 0 评论 -
汇编语言之外中断
CPU可以直接读写以下3个地方的数据cpu内部寄存器内存单元端口有种中断信息来自cpu外部,当cpu外部有需要处理的时候,比如说,外设的输入到达,相关芯片将向cpu发出的相应的中断信息。cpu在执行完当前指令后,可以检测到发送过来的中断信息,引发中断过程,处理外设的输入1)可屏蔽中断可屏蔽中断是cpu可以不响应外中断,cpu是否相应可屏蔽中断,要看标志寄存器IF的设置,当cpu检测...原创 2019-10-25 15:49:44 · 317 阅读 · 0 评论 -
汇编语言之内中断
中断的作用就是暂停当前程序的执行,并转去执行另外一个程序。内中断是cpu执行的指令产生的系统内置的内中断除法错误,比如执行div指令产生的除法溢出 0单步执行 1执行into指令 4执行int指令 N...原创 2019-10-25 11:02:20 · 645 阅读 · 1 评论 -
汇编语言之标志寄存器
ZF标志ZF标志是零标志位(zero flag);她记录相关指令执行后,其结果是否为0,如果为0,则ZF = 1,如果不为0 ,则 ZF = 0例如mov ax,1sub ax,1上面指令执行后,ZF= 1PF标志PF标志是奇偶标志位(parity flag),他记录相关指令执行后,其结果所有的bit位中1的个数是否为偶数,如果为偶数,则PF= 1,否则为0mov al,1ad...原创 2019-10-24 17:01:45 · 1592 阅读 · 0 评论 -
汇编语言之call和ret指令
ret指令用栈中的数据,修改ip的内容,从而实现近转移retf指令用栈中的数据,修改cs和ip的内容,从而实现远转移cpu在执行ret指令时,进行下面两步操作(ip) = ((ss)*16 +(sp)(sp) = (sp)+2使用汇编语言表示就是pop ipassume cs:codestack segment db 16 dup(0)stack endsco...原创 2019-10-24 16:05:56 · 365 阅读 · 0 评论 -
window 10下安装DOSbox的汇编环境
首先下载masm安装包,原创 2019-10-24 10:02:02 · 286 阅读 · 0 评论 -
汇编语言之转移指令
在8086CPU中,转移指令分为以下几类 无条件转移指令(jmp) 条件转移指令 循环指令 过程 中断操作符offset操作符offset在汇编与语言中由编译器处理的符号,他的功能是取得标号的偏移地址assume cs:codecode:segment start:mov ax,offset start //(ax) = 0 s:mov ax,offset s //(...原创 2019-10-24 09:54:52 · 453 阅读 · 0 评论 -
汇编语言之dup
dup是一个操作符,在汇编语言中同db,dw,dd等一样,也是汇编器处理的符号,他是同db、dw,dd等数据定义的伪指令配合使用,用来进行数据的重复db 重复的次数 dup (重复的字节性数据)dw 重复的次数 dup (重复的字型数据)dd 重复的次数 dup (重复的双字性数据)...原创 2019-10-23 10:20:57 · 14166 阅读 · 0 评论 -
汇编语言之div命令
上一节,我们学习了gdb的环境的安装和如何带gdb参数进行编译程序,这节,我们将学习gdb的一些基本操作,后面将对这些操作进行详细讲解。单步调试代码1)断点断点用来指定程序暂停执行,gdb中使用break命令设置断点,也可以使用b这个简写,说明,以后遇见了简写的命令,我将使用命令(简写命令),2)单步调试单步调试就是执行命令的下一条,在gdb中,单步调试的命令是next(n)和’step...原创 2019-10-19 14:12:43 · 10069 阅读 · 1 评论