【汇编语言】七种寻址方式与运算指令学习笔记

365平台被黑 📅 2025-07-21 10:17:21 👤 admin 👁️ 5501 ❤️ 780
【汇编语言】七种寻址方式与运算指令学习笔记

前言

本文章纯粹用于记录我自己在学习汇编语言中记录的笔记

文章中可能会存在许多错误或混淆的地方,欢迎大家指出

也请各位大佬多多包涵

===================================================================

七种寻址方式

1.立即数寻址【特点:操作数在指令中,作为指令的一部分 跟在操作码后存放在代码段

assume cs:code

code segment

start:

mov ax,1111h

其中 111h则为立即数

code ends

end start

2.寄存器寻址

说明:操作数在寄存器中,在硬编码中指定的是寄存器的编号

如 mov ax,bx

这里的bx则表示的是寄存器

3.直接寻址方式

说明:操作数在内存中,指令直接包含操作数的有效地址

如:[bp+4]

注释:[]的作用是取里面的值

如cs:[1000]

就是取cs段加上1000offet的地址上面的值

mov ax,cs:[0h]就是直接寻址

4.寄存器间接寻址

说明:操作数在内存中 但是操作数的地址在SI,DI,BX,BP这四个寄存器之一中

mov bx,0

mov ax,[bx]

先利用BX寄存器存有效地址 然后再取出它的值最后将取出的值赋值给其他寄存器

注释:

SI DI BX 默认值是DS段

BP是SS段

5.寄存器相对寻址

说明:操作数是存在内存中的,操作数的地址是通过一个基址

寄存器或者变址寄存器加上偏移找到的

`code segment

radd proc

push bp

mov bp,sp

mov si,[bp+4]

mov di,[bp+6]

【重要的是上两行,是通过bp寄存器地址上下来找到的】

add si,di

mov ax,si

pop bp

radd endp

start:

mov ax,4

mov bx,5

push ax

push bx

call radd`

补充:基址寄存器有BP和BX

变址寄存器有SI和DI

6.基址加变址寻址

说明:操作数在内存中,操作数的有效地址是一个基址寄存器加上变址寄存器的内容,如果有BP,默认段为SS段,否则默认为DS段

mov bx,0

mov si,0

mov ax,[bx+si]

7.相对基址加变址寻址

说明:操作数在内存中,操作数的有效地址是一个基址寄存器和变址寄存器再加上偏移量

mov bx,0

mov si,0

mov ax[bx+si+2]

1.算数运算

inc 自增

dec 自减

add 加法

sub 减法

mul 无符号乘法

imul 有符号乘法

div 无符号除法

idiv 有符号除法

mul

mul 乘法只有一个操作数

mul oprd

oprd放的是被乘数

mov ax,10

mov bx,20

mul bx

bx的值为10乘20

ax被通常用为寄存乘数的地方

div

ax被用为寄存除数且用为寄存结果的地方

而DX则被用为寄存余数

位运算

and 与 相同为1 不同为0

or 或 一侧为1 均为1

not 非 原为1 现为0 原为0 现为1

xor 异或 不同为1 相同为0

shl 左移

shr 右移

相关推荐

多月的劳务报酬在一个月内分次支付怎么算个税
mobile365bet365com

多月的劳务报酬在一个月内分次支付怎么算个税

📅 06-29 👁️ 9978
全球通收费标准 – 全球通套餐收费指南:2025年最新版这样选不踩坑
淘宝订单险是什么及哪里交入口
365平台被黑

淘宝订单险是什么及哪里交入口

📅 07-04 👁️ 3925