第7章-2、INTEL8086处理器的寻址方式-1.1h

[18.1]–寄存器、立即数和直接寻址

在这里插入图片描述
在这里插入图片描述

寄存器寻址

在这里插入图片描述

立即数寻址

在这里插入图片描述
⭐️ 标号本质上是个汇编地址,在编译阶段会转换为一个立即数

内存寻址

CS / DS / ES / SS

在这里插入图片描述

.

[18.2]–基址寻址

在这里插入图片描述
在这里插入图片描述

![在这里插入图片描在这里插入图片描述

⭐️如果使用了基址寄存器BX,默认的段寄存器是DS,此时使用DS+BX形成物理地址

如果使用了基址寄存器BP,默认的段寄存器是SS,此时使用SS+BP形成物理地址,如果使用BP,则可以省略超越前缀SS

在这里插入图片描述
在这里插入图片描述

.

[18.3]–变址寻址

在这里插入图片描述
使用SI、DI
在这里插入图片描述

mov [si],dx					; DX内容复制到:物理地址为(DS内容左移4位 + SI内容)存储单元中

add ax, [di]				; 物理地址为(DS内容左移4位 + DI内容)存储单元的一个字内容,
							; 加上AX的内容,让如AX中
							
xor word [si], 0x8000		; 物理地址为(DS内容左移4位 + SI内容)存储单元一个字内容,异或立即数0x8000,
							; 结果放入上面的物理地址中

在这里插入图片描述
在这里插入图片描述


; -------------- 就地反转字符串的内容,即按照相反的顺序存储在原来的位置 --------------
; BX 存储字符串的开始位置,循环从内存物理地址 [DS:BX] 处取字符,压栈,inc BX
		
		jmp start
		
str:	db 'abcdefghijklmnopqrstuvwxyz'

start:	
		mov ax,0x7c0			; 主引导扇区程序,加载到内存后,所在的物理地址是0x07c00
		mov ds,ax               ; 0x7c0 放入DS寄存器
		
		mov ax cs				;
		mov ss,ax 				; 代码段寄存器CS内容放入SS,此时DS和SS内容就相同了
		mov sp, 0				; 初始化栈顶指针寄存器SP
		
		mov cx, start - str		; 计数寄存器CX设置循环的次数,循环次数为字符串长度
		mov bx, str				; 基址寄存器BX中,放入字符串的段内偏移量
		
lppush:
		mov al, [bx]			;取出字符,从DS+BX的内存总取出一个字节内容,即一个字符
		push ax					; 将取出的字符入栈, 注意:push操作必须是一个字
		inc bx					;
		loop lppush				;
								;
								;
								;
								;
								;
								;
								;
								;
								;
								;
								;
								;
								;
								;
								;
		

[18.4]–基址变址寻址

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
⭐️ BP使用段寄存器SS
在这里插入图片描述
在这里插入图片描述

.

[18.5]–原书第1版第7章 检测点 和习题解析

.

[18.6]–原书第1版第7章 检测点 和习题解析

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

java硕哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值