汇编学习(一)8086汇编拾遗(2)

 

寻址方式

立即寻址             mov ax,3069H 寄存器寻址         mov al,BH 直接寻址             mov ax,[2000H] 寄存器间接寻址    mov ax,[bx] 寄存器相对寻址   mov ax,cont[si] 基址变址寻址      mov ax,[bp][di] 相对基址变址寻址    mov ax,mask[bx][si] dw 字型数据   16位等与2个节     db  字节型数据  8位等于1个字节 更加灵活的定位内存地址 7.1 and 和 or and 和 or 就是我们常见的位运算 不同的寻址方式的灵活应用 [idata] 用一个常量来表示地址,可以直接定位一个内存单元 [bx] 用一个变量来表示内存地址,可用于间接定位一个内存单元 [bx + idata] 用一个变量和常量表示地址,可在一个起始地址的基础上用变量间接定位一个内存单元 [bx + si] 用两个变量表示地址 [bx + si +idata] 用两个变量和一个常量表示地址 8086处理器寄存器小结 一般寄存器: ax,bx,cx,dx,ah,al,bh,bl,ch,cl,dh,dl,sp,bp,di,di 段寄存器,只能存储段地址的寄存器: ds,ss,cs,es 数据段寄存器: ds 栈段寄存器: ss:sp 代码段寄存器: cs:ip 使用相关寄存器寻址的一些需要注意的地方: 只有bx,si,di,bp 在 [...] 中 使用寻址,例如 mov cx,[ax] 这就是非法的。 在使用寄存器寻址的时候有以下的一些默认设置。 使用[bx] 默认段地址在cs寄存器中 使用[bp] 默认段地址在ss寄存器中 机器指令处理的数据在什么地方 一个书上的表格 机器码 汇编指令 指令执行前数据的位置 8E1E0000 mov bx,[0] 内存,ds:0 单元 89C3 mov bx,ax CPU内部,ax寄存器 BB0100 mov bx,1 CPU内部,指令缓冲区 汇编语言中数据位置的表达 (1) 立即数 对于直接包含在机器指令中的数据(执行前在CPU的指令缓冲器中),在汇编语言中称为立即数 (2) 寄存器 指令要处理的数据在寄存器中,在汇编指令中给出相应的寄存器名 (3) 段地址:偏移地址 指令要处理的数据在内存中,在汇编指令中可以使用[x]的格式给出EA,SA在某个段寄存器中。 寻址方式: 个人觉得其实就两个方式,一个是使用寄存器bx ,bp ,si,di 的偏移量来寻址,这个主要应用变址寻址,对于二维数组的处理非常高效,还有一种通过idata立即数的方式来由我们指定偏移量。 指定处理数据长度 mov word ptr ds:[0],1 指明访问的是一个字单元 mov byte ptr ds:[0],1 指明访问的是一个字节型单元    
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值