上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 39 下一页
摘要: 8086cpu的标志寄存器有16位,其中存储的信息通常被称为程序状态字(PSW)。 我们已经使用过8086cpu的ax、bx、cx、dx、si、di、bp、sp、ip、cs、ss、ds、es等13个寄存器了。 本章中的标志寄存器(以下简称flag)是我们要学习的最后一个寄存器。 flag和其他寄存器 阅读全文
posted @ 2020-05-25 11:21 ice--cream 阅读(480) 评论(0) 推荐(0) 编辑
摘要: 引言: call和ret都是转移指令,他们都修改ip,或同时修改cs和ip。 他们经常被共同用来实现程序的设计 10.1 ret和retf ret指令用栈中的数据,修改ip的内容,从而实现近转移。 retf指令用栈中的数据,修改cs和ip的内容,从而实现远转移; 可以看出,如果我们用汇编语法来解释r 阅读全文
posted @ 2020-05-23 21:07 ice--cream 阅读(511) 评论(0) 推荐(0) 编辑
摘要: 9.7jcxz指令 jcxz指令为有条件转移指令,所有的有条件转移指令都是短转移,在对应的机器码中包含转移的位移,而不是目的地址。对ip的修改范围都为-128~127 指令格式:jcxz 标号 (如果cx=0,则转移到标号处执行) jcxz 标号 指令操作: 当cx=0时,ip=ip+2位位移 8位 阅读全文
posted @ 2020-05-23 15:55 ice--cream 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 8086cpu的转移指令分为以下几类: 无条件转移指令(如:jmp) 条件转移指令 循环指令 过程 中断 9.1 操作符0ffset 操作符offset在汇编语言中是由编译器处理的符号,他的功能是取得标号的偏移地址。 9.2 jmp指令 jmp为无条件转移,可以只修改ip,也可以同时修改cs和ip 阅读全文
posted @ 2020-05-23 14:22 ice--cream 阅读(359) 评论(0) 推荐(0) 编辑
摘要: 8.7 div指令 div是除法指令,使用div做除法的时候: 除数:8位或16位,在寄存器或内存单元中 被除数:(默认)放在ax或dx和ax中 结果: 运算 8位 16位 商 al ax 余数 ah dx div指令格式: div reg div 内存单元 div byte ptr ds:[0] 阅读全文
posted @ 2020-05-20 21:48 ice--cream 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 本章对前面的所有内容是具有总结性的。我们知道,计算机是进行数据处理、运算的机器,那么有两个基本的问题就包含在其中: 1)处理的数据在什么地方 2)要处理的数据有多长? 这两个问题,在机器指令中必须给以明确或隐含的说明,否则计算机就无法工作。 为了描述上的简洁,在以后的课程中,我们将使用两个描述性的符 阅读全文
posted @ 2020-05-20 10:18 ice--cream 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 7.10 不同的寻址方式的灵活应用 如果我们比较一下前面用到的几种定位内存地址的方法(可称为寻址方式),就可以发现有以下几种方式: 1)[idata]用一个常量来表示地址,可用于直接定位一个内存单元。 2)[bx]用一个变量来表示内存地址,可用于间接定位一个内存单元。 3)[bx+idata]用一个 阅读全文
posted @ 2020-05-19 21:04 ice--cream 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 引言 前面,我们用[0]、[bx]的方法,在访问内存的指令中,定位内存单元的地址。 在这一章中,我们主要讲解一些更灵活的定位内存地址的方法和相关的编程方法 首先我们介绍两条指令and和or,因为我们下面的例子中要用到他们。 1)and指令:逻辑与指令,按位进行与运算。 如mov al, 011000 阅读全文
posted @ 2020-05-19 14:29 ice--cream 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 前面我们写的程序中,只有一个 代码段 现在有一个问题是: 如果程序需要用其他空间来存放数据,我们使用哪里呢? 第5章中,我们讲到要使用一段安全的空间。 我们说0:200~0:300是相对安全的 可是这段空间的容量只有256个字节,如果我们需要的空间超过256个字节,该怎么办呢? 下面我们将以这样的顺 阅读全文
posted @ 2020-05-18 21:52 ice--cream 阅读(296) 评论(0) 推荐(0) 编辑
摘要: [bx]是什么呢? 和[0]有些类似,[0]代表内存单元,它的偏移地址是0. 我们要完整的描述一个内存单元,需要两种信息: 1)内存单元的地址 2)内存单元的长度(类型) 我们用[0]表示一个内存单元时,0表示单元的偏移地址,段地址默认在ds中,单元的长度(类型)可以由具体指令中的其他操作对象(比如 阅读全文
posted @ 2020-05-13 21:13 ice--cream 阅读(523) 评论(0) 推荐(0) 编辑
上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 39 下一页