8086到80386汇编数据传送指令的扩展

news/2023/6/7 1:03:54

80386及以上汇编的数据传送指令如下;

MOV     传送字或字节.  
MOVSX   先符号扩展,再传送.  
MOVZX   先零扩展,再传送.  
PUSH    把字压入堆栈.  
POP     把字弹出堆栈.  
PUSHA   把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.  
POPA    把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.  
PUSHAD  把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈.  
POPAD   把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.  
BSWAP   交换32位寄存器里字节的顺序  
XCHG    交换字或字节.(至少有一个操作数为寄存器,段寄存器不可作为操作数)  
CMPXCHG 比较并交换操作数.(第二个操作数必须为累加器AL/AX/EAX)  
XADD    先交换再累加.(结果在第一个操作数里)  
XLAT    字节查表转换.----BX指向一张256字节的表的起点,
        AL为表的索引值(0-255,即0-FFH);
        返回AL为查表结果.([BX+AL]->AL)  

    已经比8086扩展了一些;

8086的数据传送指令如下;


1. MOV(传送)
2. XCHG(交换)
3. LEA(装入有效地址)
4. LDS/LES/LGS/LFS/LSS
5. PUSH(进栈)
6. POP(出栈)
7. PUSHF/POPH
8. LAHF/SAHF(标志寄存器传送指令)
9. XLAT(汇编语言查表指令)

使用emu8086来看一下;

MOVSX AX, CL 这条8086已经不能识别;

BSWAP 这条肯定是80386及以后的,交换32位寄存器里字节的顺序,是针对32位寄存器的;

 

PUSHAD是386及以后的,在emu8086中输入,8086识别的显示为蓝色,不识别的显示为黑色;

 

XLAT,汇编语言查表指令,这条是一直都有的;

LEA,LDS,LAHF 也是一直有的;

别的自己看吧;

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

如若内容造成侵权/违法违规/事实不符,请联系郑州代理记账网进行投诉反馈,一经查实,立即删除!

相关文章

记录一下向npmjs上发布包遇到的坑

先说一下如何向npmjs上发布包 首先要现在npmjs上注册一个账号,需要使用用户名、密码、邮箱在自己的项目中将要发布的包封装好在这里先判断一下是不是使用在使用npm的源,如果不是,要切换成npm的源(毕竟是npm家的,用别的…

https://www.npmjs.com/一个下载库的网址

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库总结前言 提示:这里可以添加本文要记录的大概内容: 随着我们的不断学习&#xff…

error An unexpected error occurred “httpsregistry.npmjs.orgd3-geo-proje

error An unexpected error occurred: "https://registry.npmjs.org/d3-geo-proje yarn install 报错 大概意思是 错误发生意外错误:https://registry.npmjs.org/d3-geo-proje 原因是代理的问题 解决办法就是 先把node-sass镜像源进行设置成国内的 yarn …

详解如何在npmjs上上传和更新属于自己的组件库

文章目录 🔥一、创建包 🔥二、编写组件库 ❤️1、Alert组件制作 ❤️2、Toast组件制作 ❤️3、css样式和库导出出口 🔥三、上传组件库 ❤️1、先将npm源切换到npm ❤️2、注册npm账号 ❤️3、登陆账号 ❤️4、发布(推送)包 &…

发布到NPMJS

最近在做微服务的前后端设计,打算将客户端中的一个模块独立出来发布到npmjs上,因此,有机会了解了一下npm的发布过程。参考了很多网上的文章,长篇累牍(但在这里还是真心感谢他们的分享),最终总结…

详细了解如何在npm上发布自己的包?

大家好,我是纸飞机,想必大家都在项目中经常会使用npm install、yarn add、cnpm install等安装包的命令吧。那么大家好奇过,这些包都是怎么来的吗?不用迷茫,本篇文章就为你揭秘他们到底怎么来的并且手把手教你做一个属于…

Day04-NPM包管理工具

NPM包管理工具一、简介1、什么是NPM2、NPM工具的安装位置二、使用npm管理项目1、创建文件夹npmdemo2、项目初始化3、修改npm镜像4、npm install命令的使用,下载js文件5、根据package.json文件下载依赖6、其他命令7、nmp具体操作一、简介 1、什么是NPM NPM全称Node…

Node.js中的npm与包

npm与包一、包1.包是什么?2.包是干啥的?3.包的下载二、npm初体验1.在项目中安装包的命令2.eg:对时间格式化3.安装指定版本的包三、包管理配置文件1.如何记录项目中安装了哪些包2.一次性安装所有的包3.devDependencies节点与dependencies节点4.nrm5.包的分…