必威体育Betway必威体育官网
当前位置:首页 > IT技术

汇编语言学习——mov指令(转载)

时间:2019-07-29 21:42:12来源:IT技术作者:seo实验室小编阅读:61次「手机版」
 

mov

在汇编语言中,MOV指令是数据传送指令,也是最基本的编程指令,用于将一个数据从源地址传送到目标地址(寄存器间的数据传送本质上也是一样的)。其特点是不破坏源地址单元的内容

例如:

MOV AX,2000H;将16位数据2000H传送到AX寄存器

MOV AL,20H;将8位数据20H传送到AL寄存器

MOV AX,BX;将BX寄存器的16位数据传送到AX寄存器

MOV AL,[2000H];将2000H单元的内容传送到AL寄存器

需要注意的是:

(1)两个存储单元之间不能直接传送数据,即:MOV指令只允许一个操作数在存储器中。MOV [SI],[2000H];这是错误的

(2)MOV指令中立即数不能直接传送给段寄存器(CS、DS、SS、ES)和IP;段寄存器之间不能直接传送。MOV IP,2000 H ;这是错误的

(3)CS和IP不能作为目的操作数。MOV CS,AX ;这是错误的

(4)MOV指令中立即数不能作目标操作数。MOV 2000H,[SI] ;这是错误的

MOV指令可以在cpu内或CPU和存储器之间传送字或字节,它传送的信息可以从寄存器到寄存器,立即数到寄存器,立即数到存储单元,从存储单元到寄存器,从寄存器到存储单元,从寄存器或存储单元到除CS外的段寄存器(注意立即数不能直接送段寄存器),从段寄存器到寄存器或存储单元。

但是注意

*(1) MOV指令中的源操作数绝对不能是立即数和代码段CS寄存器;

(2) MOV指令中绝对不允许在两个存储单元之间直接传送数据;

(3) MOV指令中绝对不允许在两个段寄存器之间直接传送数据;

(4) MOV指令不会影响标志位*

例:MOV AX,DATA_SEG

MOV DS,AX

注意:段寄存器(段地址)必须通过寄存器如AX寄存器进行立即数的初始化。

例: MOV AL,‘E’

把立即数(字符E的ASC码)送到AL寄存器。

例: MOV BX,offset TABLE

将TABLE的偏移地址(而不是内容)送到BX寄存器中。其中OFFSET为属性操作符,表示的是将其后的符号地址的值(不是内容)作为操作数。

例 MOV AX,Y[BP][SI]

把地址为16d×(SS)十(BP)十(SI)十位移量Y的存储单元的内容送给AX寄存器

原文链接:http://blog.sina.com.cn/s/blog_84ee1fff0102xbeb.html

相关阅读

x86汇编指令集大全(带注释)

汇编指令集太多,如果不用就会忘记,所以将i处理器官方的指令集大全写到博客上,有需要的人可以参考一下!X86和X87汇编指令大全(有注释)

Ralink SDK相关指令总结

针对4G路由上的相关配置讲解查看4G 拨号是否成功 # forge

ESP8266在Station和AP模式下常用AT指令

ESP8266在TCP Client和TCP Server模式下常用AT指令 参见《ESP8266 AT 指令使用示例例》 https://www.espressif.com/sites/default

PPC指令集

一、存储/加载指令 1 整数存储指令 整数存储指令如表2所示。 表2 整数存储指令 名称 助记符 语法格

Java基础: 什么是指令重排序/as-if-serial/内存屏障/h

Java基础知识指令重排序在执行程序时,为了提高性能,编译器和处理器会对指令做重排序。编译器优化重排序:编译器在不改变单线程程序语

分享到:

栏目导航

推荐阅读

热门阅读