标志寄存器04 – 零基础入门学习汇编语言57

第十一章:标志寄存器04让编程改变世界Change the world by programcmp指令下面我们再来看一下如果用cmp来进行有符号数比较时,我们要注意哪些标志位!我们以cmp ah,bh为例进行说明:如果(ah)=(bh) 则(ah)-(bh)=0,所以:ZF=1;如果(ah)≠(bh) 则(ah)-(bh) ≠0,所以:ZF=0;所以,我们根

标志寄存器01 – 零基础入门学习汇编语言54

第十一章:标志寄存器01让编程改变世界Change the world by program引言8086CPU的标志寄存器有16位,其中存储的信息通常被称为程序状态字(PSW)。我们己经使用过8086CPU的ax、bx、cx、dx、si、di、bp、sp、ip、cs、ss、ds、es等13个寄存器了。本章中的标志寄存器(以下简称为flag)是我们要学习的最后一个

标志寄存器02 – 零基础入门学习汇编语言55

第十一章:标志寄存器02让编程改变世界Change the world by programCF标志flag的第0位是CF,进位标志位。一般情况下,在进行无符号数运算的时候,它记录了运算结果的最高有效位向更高位的进位值,或从更高位的借位值。对于位数为N的无符号数来说,其对应的二进制信息的最高位,即第N-1位,的最高有效位,而假想存在的第N位,就是相对于最高有效位

Call指令和Ret指令讲解05 – 零基础入门学习汇编语言52

第十章:Call指令和Ret指令讲解05让编程改变世界Change the world by program实验十 编写子程序显示字符串解决除法溢出问题数值显示连续三道题都有点难度,大家慎重斟酌!记住,没有过不去的坎!!坚持下来就是成功!!视频下载技术, IT技术, 汇编语言, 视频教程原文发布于宽客论坛,点击阅读原文

Call指令和Ret指令讲解04 – 零基础入门学习汇编语言51

第十章:Call指令和Ret指令讲解04让编程改变世界Change the world by program批量数据的传递前面的例程中,子程序cube只有一个参数,放在bx中。如果有两个参数,那么可以用两个寄存器来放,可是如果需要传递的数据有3个、4个或更多直至N个,我们怎样存放呢?寄存器的数量终究有限,我们不可能简单地用寄存器来存放多个需要传递的数据。对于返回值

Call指令和Ret指令讲解03 – 零基础入门学习汇编语言50

第十章:Call指令和Ret指令讲解03让编程改变世界Change the world by programcall指令和ret指令的配合使用2我们看一下程序的主要执行过程:(1)前三条指令执行后,栈的情况如下:call指令和ret指令的配合使用(2)call 指令读入后,(IP) =000EH,CPU指令缓冲器中的代码为 B8 05 00CPU执行B8 05

Call指令和Ret指令讲解02 – 零基础入门学习汇编语言49

第十章:Call指令和Ret指令讲解02让编程改变世界Change the world by program转移的目的地址在指令中的call指令前面讲解的call指令,其对应的机器指令中并没有转移的目的地址 ,而是相对于当前IP的转移位移。指令“call far ptr 标号”实现的是段间转移。CPU执行“call far ptr 标号”这种格式的call指令时

Call指令和Ret指令讲解01 – 零基础入门学习汇编语言48

第十章:Call指令和Ret指令讲解01让编程改变世界Change the world by program引言想想程序之间的加载返回过程。call和ret 指令都是转移指令,它们都修改IP,或同时修改CS和IP。它们经常被共同用来实现自程序的设计。这一章,我们讲解call和ret 指令的原理。ret指令和retf指令ret指令用栈中的数据,修改IP的内容

转移指令的原理04 – 零基础入门学习汇编语言46

第九章:转移指令的原理04让编程改变世界Change the world by program根据位移进行转移的意义前面我们讲到:jmp short 标号jmp near ptr 标号jcxz 标号loop 标号等几种汇编指令,它们对 IP的修改是根据转移目的地址和转移起始地址之间的位移来进行的。在它们对应的机器码中不包含转移的目的地址,而包含的是到目的

转移指令的原理03 – 零基础入门学习汇编语言45

第九章:转移指令的原理03让编程改变世界Change the world by programjcxz指令jcxz指令为有条件转移指令,所有的有条件转移指令都是短转移,在对应的机器码中包含转移的位移,而不是目的地址。对IP的修改范围都为-128~127。指令格式:jcxz 标号jcxz 标号 指令操作:当(cx)=0时,(IP)=(IP)+8位位移)8位位移

转移指令的原理02 – 零基础入门学习汇编语言44

第九章:转移指令的原理02让编程改变世界Change the world by program转移的目的地址在指令中的jmp指令前面讲的jmp指令,其对应的机器码中并没有转移的目的地址,而是相对于当前IP的转移位移。指令 “jmp far ptr 标号” 实现的是段间转移,又称为远转移。指令 “jmp far ptr 标号” 功能如下:(CS)=标号所在段的段

转移指令的原理01 – 零基础入门学习汇编语言43

第九章:转移指令的原理01让编程改变世界Change the world by program引言8086CPU的转移指令分为以下几类:无条件转移指令 (如:jmp)条件转移指令循环指令(如:loop)过程中断操作符offset操作符offset在汇编语言中是由编译器处理的符号,它的功能是取得标号的偏移地址。比如下面的程序:assume cs:co

数据处理的两个基本问题05 – 零基础入门学习汇编语言42

第八章:数据处理的两个基本问题05让编程改变世界Change the world by program实验七:寻址方式在结构化数据访问中的应用这个程序是到目前为止我们遇到的最复杂的程序,它几乎用到了我们之前学过的所有知识和编程技巧。这个程序是对我们目前能力的一个考验,请一定要认真完成,务必弄明白才继续往下学习。源数据在哪里?年份(0-53H)、收入(54H-0

数据处理的两个基本问题04 – 零基础入门学习汇编语言41

第八章:数据处理的两个基本问题04让编程改变世界Change the world by programdiv指令div是除法指令(division),使用div作除法的时候:除数:8位或16位,在寄存器或内存单元中被除数:(默认)放在AX或DX和AX中除数 被除数8位     16位(AX)16位   32位(DX+AX)结果:运算  8位   16位

数据处理的两个基本问题03 – 零基础入门学习汇编语言40

第八章:数据处理的两个基本问题03让编程改变世界Change the world by program寻址方式的综合应用下面我们通过一个实例来进一步讨论各种寻址方式的作用。关于DEC公司的一条记录(1982年):公司名称:DEC总裁姓名:Ken Olsen排 名:137收 入:40著名产品:PDP1988年DEC公司的信息有了变化:1、Ken Ols

数据处理的两个基本问题02 – 零基础入门学习汇编语言39

第八章:数据处理的两个基本问题02让编程改变世界Change the world by program寻址方式小结演示1、直接寻址8_直接寻址过程演示2、寄存器间接寻址8_寄存器间接寻址过程演示3、寄存器相对寻址8_寄存器相对寻址过程演示4、基址变址寻址8_基址变址寻址过程演示5、相对基址变址寻址8_相对基址变址寻址过程指令要处理的数据有多长?

数据处理的两个基本问题01 – 零基础入门学习汇编语言38

第八章:数据处理的两个基本问题01让编程改变世界Change the world by program引言本章对前面的所有内容是具有总结性的。我们知道,计算机是进行数据处理、运算的机器,那么有两个基本的问题就包含在其中:(1)处理的数据在什么地方?(2)要处理的数据有多长?这两个问题,在机器指令中必须给以明确或隐含的说明,否则计算机就无法工作。本章中,我们就