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

本是古典 何须时尚 2022-07-24 08:18 315阅读 0赞

寻址方式

立即寻址 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 指明访问的是一个字节型单元

发表评论

表情:
评论列表 (有 0 条评论,315人围观)

还没有评论,来说两句吧...

相关阅读