天草初级班(3)

算术运算指令
算术运算指令是反映CPU计算能力的一组指令,也是编程时经常使用的一组指令。它包括:加、减、乘、除及其相关的辅助指令。

该组指令的操作数可以是8位、16位和32位(80386+)。当存储单元是该类指令的操作数时,该操作数的寻址方式可以是任意一种存储单元寻址方式。

1、加法指令

指令的格式:ADD Reg/Mem, Reg/Mem/Imm
受影响的标志位:AF、CF、OF、PF、SF和ZF
指令的功能是把源操作数的值加到目的操作数中。

、带进位加指令ADC(见得较少)

指令的格式:ADC Reg/Mem, Reg/Mem/Imm
受影响的标志位:AF、CF、OF、PF、SF和ZF
指令的功能是把源操作数和进位标志位CF的值(0/1)一起加到目的操作数中。

、加1指令INC

指令的格式:INC Reg/Mem
受影响的标志位:AF、OF、PF、SF和ZF,不影响CF
指令的功能是把操作数的值加1。


、交换加指令XADD(见得较少)

指令的格式:XADD Reg/Mem, Reg     
受影响的标志位:AF、CF、OF、PF、SF和ZF
指令的功能是先交换两个操作数的值,再进行算术“加”法操作

2、减法指令

、减法指令SUB

指令的格式:SUB Reg/Mem, Reg/Mem/Imm
受影响的标志位:AF、CF、OF、PF、SF和ZF
指令的功能是从目的操作数中减去源操作数。

、带借位减SBB(见得较少)

指令的格式:SBB Reg/Mem, Reg/Mem/Imm
受影响的标志位:AF、CF、OF、PF、SF和ZF
指令的功能是把源操作数和标志位CF的值从目的操作数中一起减去。

、减1指令DEC

指令的格式:DEC Reg/Mem
受影响的标志位:AF、OF、PF、SF和ZF,不影响CF
指令的功能是把操作数的值减去1。

、求补指令NEG

指令的格式:NEG Reg/Mem
受影响的标志位:AF、CF、OF、PF、SF和ZF
指令的功能:操作数=0-操作数,即改变操作数的正负号


3、乘法指令

计算机的乘法指令分为无符号乘法指令和有符号乘法指令,它们的唯一区别就在于:数据的最高位是作为“数值”参与运算,还是作为“符号位”参与运算。

乘法指令的被乘数都是隐含操作数,乘数在指令中显式地写出来。CPU会根据乘数是8位、16位,还是32位操作数,来自动选用被乘数:AL、AX或EAX。

指令的功能是把显式操作数和隐含操作数相乘,并把乘积存入相应的寄存器中。

、无符号数乘法指令MUL/FMUL

指令的格式:MUL Reg/Mem
受影响的标志位:CF和OF(AF、PF、SF和ZF无定义)
指令的功能是把显式操作数和隐含操作数(都作为无符号数)相乘

、有符号数乘法指令IMUL/FIMUL

指令的格式: IMUL Reg/Mem
IMUL Reg, Imm
IMUL Reg, Reg, Imm
IMUL Reg, Reg/Mem

4、除法指令

除法指令的被除数是隐含操作数,除数在指令中显式地写出来。CPU会根据除数是8位、16位,还是32位,来自动选用被除数AX、DX-AX,还是EDX-EAX。

除法指令功能是用显式操作数去除隐含操作数,可得到商和余数。当除数为0,或商超出数据类型所能表示的范围时,系统会自动产生0号中断。

、无符号数除法指令DIV/FDIV

指令的格式:DIV Reg/Mem
指令的功能是用显式操作数去除隐含操作数(都作为无符号数)。指令对标志位的影响无定义。

、有符号数除法指令IDIV/FIDIV

指令的格式:IDIV Reg/Mem
受影响的标志位:AF、CF、OF、PF、SF和ZF

 

转载于:https://www.cnblogs.com/exedev/archive/2012/11/15/tiancao3.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/377085.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4.3.3版本之引擎bug

bug描述:   IOS设备上,当使用WWW www WWW.LoadFromCacheOrDownload(url, verNum); 下载资源时,第一次下载某个资源,www.assetBundle必定为空。 解决办法:   引擎版本降到4.3.2或者升到4.3.4或更高。 这个bug绝对是…

sml完整形式_411的完整形式是什么?

sml完整形式411:信息 (411: Information) 411 is an abbreviation of “Information". 411是“信息”的缩写 。 It is an expression, which is commonly used in messaging or chatting on social media networking sites like Facebook, Yahoo Messenger, a…

php 检测用户是否关闭浏览器

1、例子1 echo str_repeat(" ",3000);ignore_user_abort(true); mylog(online);while (true) {/** 1、程序正常结束 connection_status 0* 2、点击浏览器“停止”按钮 connection_status 1* 3、超时 connection_status 2*/echo "test<br>\n&qu…

explain用法

explain用法 EXPLAIN SELECT …… 变体&#xff1a; 1. EXPLAIN EXTENDED SELECT …… 将执行计划“反编译”成SELECT语句&#xff0c;运行SHOW WARNINGS 可得到被MySQL优化器优化后的查询语句 2. EXPLAIN PARTITIONS SELECT …… 用于分区表的EXPLAIN 执行计划包含的信息 id…

《位运算技巧以及Leetcode的一些位运算题目》

目录技巧练习位运算[461. 汉明距离](https://leetcode-cn.com/problems/hamming-distance/)[190. 颠倒二进制位](https://leetcode-cn.com/problems/reverse-bits/)[136. 只出现一次的数字](https://leetcode-cn.com/problems/single-number/)[260. 只出现一次的数字 III](http…

linux读取配置文件(C语言版)

一个通用的linux系统中C语言版读取配置文件的函数。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <assert.h> #include <errno.h>#define KEYVALLEN 100/* 删除左边的空格 */ char * l_trim(char * szOutput, con…

java 范围搜寻要怎么弄_搜索范围

java 范围搜寻要怎么弄Problem statement: 问题陈述&#xff1a; Given an array of integers nums sorted in ascending order, find the starting and ending position of a given target value. 给定一个以升序排列的整数nums数组&#xff0c;请找到给定目标值的开始和结束…

boa + ajax + cgi ajax请求cgi

最近公司要做一个通讯管理机,然后需要和另外一个同事一起做,我们需要用到boaAjaxCGI,以前没试过与CGI交互,一开始发现问题挺大的,用ajax请求cgi,总是不返回数据,又或者请求回来的是cgi的源码,后来发现,通过本地IIS或者直接打开html页面请求的,返回来的都是cgi的源码或者返回失败…

《DBNotes:single_table访问方法、MRR多范围读取优化、索引合并》

目录single_table访问方法constrefref_or_nullrangeindexallMRR多范围读取优化索引合并intersectionunionsort-unionsingle_table访问方法 const 在主键列或者unique二级索引与一个常数进行等值比较时才有效。 如果主键或者unique二级索引的索引列由多个列构成&#xff0c;则…

怎样通过命令管理Windows7桌面防火墙

&#xff08;1&#xff09;启用桌面防火墙netsh advfirewall set allprofiles state on&#xff08;2&#xff09;设置默认输入和输出策略netsh advfirewall set allprofiles firewallpolicy allowinbound,allowoutbound以上是设置为允许&#xff0c;如果设置为拒绝使用blockin…

ruby推送示例_Ruby for循环示例

ruby推送示例for循环 (The for loop) In programming, for loop is a kind of iteration statement which allows the block to be iterated repeatedly as long as the specified condition is not met or a specific number of times that the programmer knows beforehand. …

《DBNotes: Buffer Pool对于缓冲页的链表式管理》

目录Buffer Pool回顾Buffer Pool内部组成freelistflushlistLRU链表管理以及改进Buffer Pool回顾 我们知道针对数据库的增删改删操作都是在Buffer Pool中完成的&#xff0c;一条sql的执行步骤可以认为是这样的&#xff1a; 1、innodb存储引擎首先在缓冲池中查询有没有对应的数据…

一个延时调用问题

如果用下面第1行的写法&#xff0c;调用 [NSObject cancelPreviousPerformRequestsWithTarget:self selector:selector(removeFromSuperview) object:nil]; 可以生效 如果用下面第3行的写法&#xff0c;调用 [NSObject cancelPreviousPerformRequestsWithTarget:self selector:…

onclicklistener 方法使用汇总

相信很多像我一样的新手学习ANDROID开发会遇到这个问题&#xff0c;通过这几天的归类和总结&#xff0c;将我的理解写在下面&#xff0c;欢迎大家一起前来讨论&#xff1a; 以按钮BUTTON的监听事件为例&#xff0c;以下的监听实现都是等价的&#xff1a; 1.使用接口继承按钮监听…

《源码分析转载收藏向—数据库内核月报》

月报原地址&#xff1a; 数据库内核月报 现在记录一下&#xff0c;我可能需要参考的几篇文章吧&#xff0c;不然以后还得找&#xff1a; MySQL 代码阅读 MYSQL开源软件源码阅读小技巧 MySQL 源码分析 聚合函数&#xff08;Aggregate Function&#xff09;的实现过程 MySQL …

vim中的jk为什么是上下_JK的完整形式是什么?

vim中的jk为什么是上下JK&#xff1a;开玩笑 (JK: Just Kidding) JK is an abbreviation of "Just Kidding". JK是“ Just Kidding”的缩写 。 It is an expression, which is commonly used in messaging or chatting on social media networking sites like Faceb…

百度归来的学长做报告

今天下午下课到现在才总算闲下来&#xff0c;本来计划这个时间应该是读英语&#xff0c;做英语模拟题的时间&#xff0c;但是&#xff0c;我不得不写点什么来记录下刚才的事——在百度实习并且签下工作的学长做报告。 原本认为每个人的成功&#xff08;请允许我目前的眼光签个好…

转:Google论文之三----MapReduce

文章来自于&#xff1a;http://www.cnblogs.com/geekma/p/3139823.html MapReduce&#xff1a;大型集群上的简单数据处理 摘要 MapReduce是一个设计模型&#xff0c;也是一个处理和产生海量数据的一个相关实现。用户指定一个用于处理一个键值&#xff08;key-value&#xff09;…

合约 cd 模式_CD的完整形式是什么?

合约 cd 模式CD&#xff1a;光盘 (CD: Compact Disc) CD is an abbreviation of "Compact Disc". CD是“ Compact Disc”的缩写 。 It is a digital optical disc originally developed to store the audio of recordings in the format of a data file used as a p…

《DBNotes:Join算法的前世今生》

目录NestLoopJoin算法Simple Nested-Loop JoinIndex Nested-Loop JoinBlock Nested-Loop JoinBatched Key AccessHash Join算法In-Memory Join(CHJ)On-Disk Hash Join参考链接在8.0.18之前&#xff0c;MySQL只支持NestLoopJoin算法&#xff0c;最简单的就是Simple NestLoop Joi…