1. move
move target source
单条move指令不能把数据从一个内存位置移到另一个内存位置,可以先把数据送到一个寄存器中
mov ax var1
mov var2 ax
var1 and var2 都是内存位置,不能 mov var2 var1
在复制数据到寄存器时,必须考虑到它需要的最少字节数
2. movzx and movsx
3. LAHF 指令将EFLGS寄存器的低字节复制到AH寄存器,被复制的标志包括符号标志,零标志,进位标志,奇偶标志和进位标志
.data
lahf ;状态标志送至AH
mov saveflags,ah ;状态标志保存在变量中
3. SAHF 指令复制AH寄存器的值到 EFLAGS 寄存器的低字节
move ah,saveflags
sahf
4. XCHG 交换两个操作数的内容
XCHG reg,reg
5. 直接偏移操作数
arrayB BYTE 10h,20h,30h
mov al,arrayB ; AL=10H
mov al,[arrayB+1] AL=20H
arrayB+1, 被称为有效地址, 有效地址以方括号括起来时 表示要对方括号内的表达式寻址以获取该有效地址内存的内容
MASM并不要求一定要使用方括号,因此下面是等价
mov al, [arrayB+1]
mov al, arrayB+1
5. INC DEC 加1或减1
6. ADD SUB
7. NEG 将数字转换为对应的补码而求其相反数
8. 标志位
ZF,CF,AC,PF,SF,DF
9. 和数据相关的操作符和伪指令
OFFSET
PRT
TYPE 返回数组中每个元素的大小(以字节计算)
LENGTHOF 操作数返回数组内元素的数组
sizeof 操作符返回数组初始化占用的字节数
10,
假设bVal位于00404000处
mov esi, offset bVal ; ESI = 00404000
esi 一般用来保存小一条指令的地址,
mov esi, OFFSET myArray + 4
11 ALIGN
对齐指令
12, PTR
myDouble DWORD 12345678h
mov ax, myDouble 错误, 32 不能送到 16位寄存器中
但word PRT可以将低字节5678H送到AX
mov ax,WORD PTR [myDouble+2] ; 1234h
mov bl,bypte ptr mydouble; 78h
将两个较小值送到较大的目的操作数
wordList WORD 5678h,1234h
mov eax, DWORD PRT wordList; EAX= 12345678H
13. TYPE
var1 BYTE ?
var2 WORD ?
var3 DWORD ?
TYPE var1 ; 1
TYPE var2 ; 2
TYPE var3 ; 4
14, LENGTHOF 数组中的元素的数组
15, sizeof 返回值等于 LENGTHOF 和 TYPE 返回值的 乘积
intArray WORD 32 DUP(0)
mov eax,SIZEOF intArray ; EAX = 64
16, 间接寻址
处理数组唯一可行的方法是用寄存器作为指针并操作寄存器的值,这称为间接寻址
var1 BYTE 10H
mov esi,OFFSET var1
mov al, [esi] ;AL = 10h
inc [esi] ; 错误 编译器不知道ESI是指向一个字节,一个字
inc BYTE PTR [esi]
17,
arrayW WORD 1000H,2000H,3000H
mov esi, OFFSET arrayW
mov ax, [esi] ;AX = 1000h
add esi,2 ; 因为是WORD类型,所以要加2 才能指向下一个元素
mov ax,[esi] ;AX = 2000h
add esi,2
mov ax, [esi] ;AX = 3000h
18 变址操作数
把常量和寄存器相加得到一个有效地址
arrayB BYTE 10h,20h,30h
mov esi, 0
mov al, [arrayB + esi] ; AL = 10h
arrayB WORD 1000h,2000h,3000h
mov esi, OFFSET arrayW
mov ax,[esi] ;AX = 1000h
mov ax,[esi+2] ;AX = 200H
19. TYPEDEF
创建了一种新的数据类型--指向字节的指针PBYTE
PBYTE TYPEDEF PRT BYTE
20 jmp
21 LOOP
mov ax,0
mov ecx,5
L1:
inc ax
loop L1
循环结束时 AX =5, ECX = 0;
22 数组求和
intarry WORD 100H,200H,300H,400H
mov edi,OFFSET intarry ; 首地址
mov ecx,LENGTHOF intarray ; 循环计数器 设置 循环次数
mov ax,0 ; 累加器清零
L1:
add ax,[edi] ;取一个数组值,加上
add edi, TYPE intarray ;指向下一个整数
loop L1
23 在JAVA中,如果向ArrayList添加元素时超过了容量,运行系统会重新分配一块新的内存,并把原来的数据复制到新地址,同事删除原来的数据
分享到:
相关推荐
TMS320C54x的数据寻址方式 TMS320C54x DSP 提供了 7 种基本数据寻址方式,分别是立即寻址、绝对寻址、累加器寻址、直接寻址、间接寻址、存储器映象寄存器寻址和堆栈寻址。每种寻址方式都有其特点和应用场景。 3.1 ...
微机原理数据寻址方式 微机原理中,数据寻址方式是指指令中寻找操作数的方法。操作数可以是立即数、寄存器操作数或存储器操作数。寻址方式决定了操作数的地址信息,从而影响了指令的执行速度和效率。下面是七种常见...
在汇编语言中,数据的存取和指令的执行都涉及到数据的寻址方式。寻址方式是确定操作数或指令在内存中位置的方法,这对理解和优化程序执行效率至关重要。 4.3.1 指令的寻址方式: 1. **顺序寻址方式**:这是最基本的...
对于S7-200而言,了解其存储器的管理方式和数据寻址机制至关重要,这不仅关乎编程效率,还直接影响控制系统的响应速度和数据处理能力。 #### 直接寻址与间接寻址 **直接寻址**是S7-200中最基本也是最直观的寻址...
- 数据寻址方式:查找操作数的过程称为数据寻址,因为它涉及到通过存储器地址或 I/O 地址来获取数据。 3. 数值表达式和常量: - 汇编语言中,数值表达式如"(34+67H)*3"在汇编时会被计算,生成一个确定的数值,...
数据寻址方式涉及获取操作数的方式,而转移寻址方式则涉及到程序跳转的目标地址。具体而言,数据寻址方式又可分为以下几种: 1. 立即寻址方式:指令中的操作数直接给出,例如MOV AX, 5这样的指令,操作数5直接嵌入...
然而,间接寻址也要求编程人员对PLC存储结构和数据寻址机制有深入的理解,以避免指针错误和逻辑错误。 总而言之,西门子间接寻址是PLC编程中的一项高级技术,它通过指针变量来动态访问和操作存储地址。熟悉这一技术...
- 数据寻址方式包括直接寻址、间接寻址、寄存器寻址、相对寻址等,它们决定了数据如何被加载到处理器中进行处理。 在这个章节中,读者会了解到指令系统和寻址方式对于微机运行的重要性,它们是程序设计和计算机硬件...
间接寻址是PLC编程中一种灵活的数据寻址方式,它通过使用变址寄存器和一个基准地址来动态指定数据存储的位置。变址寄存器的内容可以改变,因此可以访问一系列连续的数据元素,而无需单独指定每个元素的地址。间接...
寻址方式可以分为两大类:指令寻址和数据寻址。本文将详细介绍几种常见的寻址方式及其特点,并通过一些生活中的例子来帮助理解。 #### 二、寻址方式分类 1. **立即寻址** - 特点:操作数本身存在于指令字内。 - ...
在80X86体系结构中,数据寻址方式主要分为三种:立即寻址、寄存器寻址和存储器寻址。 立即寻址是指操作数直接包含在指令中,常用于初始化或赋值操作。例如,`MOV EAX, 80000000H`将立即数80000000H加载到EAX寄存器...
### 与数据有关的寻址方式 #### 一、立即寻址方式 立即寻址方式是一种最简单且直观的寻址方式,在这种寻址模式下,操作数直接包含在指令中,作为指令的一部分出现。例如: - `MOVAL,5` - `MOVAX,3064H` - `MOVAL,...
(1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为 13位。 (2)1KB的存储器有 1024 个存储单元,存储单元的编号从 0 到 1023 。 (3)1KB的存储器可以存储 8192(2^13) 个bit, 1024个Byte。 (4)1GB是 ...
1. **寻址方式**:8086CPU 提供了多种寻址方式,这些方式是计算机能够有效访问内存中数据的基础。包括: - **直接寻址**:直接给出内存单元的偏移地址。 - **寄存器间接寻址**:通过寄存器来间接访问内存地址。 -...
数据寻址又细分为立即数寻址、寄存器寻址和存储器寻址。立即数寻址是将操作数直接包含在指令中,这种方式快速但不适用于所有的指令类型,如单操作数指令。寄存器寻址则利用CPU内部的寄存器来存放数据,效率较高。...
寻址分为数据寻址和程序地址寻址两种类型。以数据传送指令MOV为例,它的格式为`MOV 目的操作数, 源操作数`,用于将源操作数的内容传送到目的操作数。 1. **立即寻址方式**:操作数直接写在指令中,称为立即数,例如...
8086 微处理器有七种基本的数据寻址方式:立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址和相对基址变址寻址。 8086 寻址方式 立即寻址 在立即寻址方式中,操作数直接出现在指令...
物理寻址是指程序直接使用物理内存地址来访问数据。这种寻址方式的特点是内存地址直接对应到实际物理内存单元,没有中间转换环节。在物理寻址模式下,CPU访问内存时发出的就是实际的物理地址,处理器直接根据该地址...
### TMS320C54x DSP CPU与外设(三)—— 数据寻址详解 #### 一、概述 本篇文章将深入探讨TMS320C54x数字信号处理器(DSP)中的数据寻址机制,特别是针对绝对地址寻址、直接寻址和间接寻址这三种重要的寻址方式。 #...
8086支持七种基本的数据寻址方式: 1. **立即寻址**:操作数直接在指令中给出,例如`MOV AX, 2010H`。立即数只能作为源操作数,不能作为目标,且需与目标操作数长度匹配。它可以是十六进制(如2010H)、八进制(如...