汇编语言期末考试复习专篇-----寄存器

接上次

看书和百度搜索写一写笔记和理解



1.档使用BP做编程地址时,此时使用的是SS段。关于SS可以看一下这位的博客 https://www.cnblogs.com/dongzhiquan/p/4960602.html
2.命令ADD AX,BX 之中,源操作的对象是BX,目的操作的对象是AX,所以当求操作的物理址时,就是该对象的段地址*16+偏移地址
3.关于寄存器的部分详解

	四个通用寄存器
		AX累加寄存器,常用于运算,
		BX 基址寄存器,常用于地址索引,例:[bx]
		CX 计数寄存器,常用于计数,例如loop中的循环次数保留值
		DX 数据寄存器,常用于数据传递
		以上四类的特点是分为高低各八位,可以分别寻址,单独使用
	
	四个指针寄存器和变址寄存器,包括:
		SP 堆栈指针 与SS配合使用,可指向目前的堆栈位置
		BP 基址指针寄存器 可作为SS的一个相对基址位置
		SI 源变址寄存器 可用来存放相对于DS段之源变址指针
		DI 目的变址寄存器,可用来寻访相对于ES段之目的变址指针
		这四个只能按16位进行存取操作
	
	四个段寄存器:
		CS:代码段寄存器
		DS:数据段寄存器		/*常用的段地址寄存器*/
		ES:堆栈段寄存器
		SS:附加段寄存器
		FS:附加段寄存器
		GS:附加段寄存器
		
	一个标志寄存器
		FLAG:标志位

	指令指针寄存器
		IP:扩展指针


物理地址=段地址(段寄存器地址)+偏移地址(通用寄存器地址)
		
七种寻址方式:

1、立即寻址方式:
	将一个操作数直接赋值给寄存器
	例如:指令:MOV AX,1234H
	则:AX=1234H
	
2、寄存器寻址方式:
	操作数在CPU内部的寄存器中,指令指定寄存器号。
	对于16位操作数,寄存器可以是:AX、BX、CX、DX、SI、DI、SP和BP等。
	对于8位操作数,寄存器可以是AL、AH、BL、BH、CL、CH、DL、DH。
	这种寻址方式由于操作数就在寄存器中,不需要访问存储器来取得操作数
	因而可以取得较高的运算数度。
	
3、直接寻址方式:
	寄存器将内存单元直接赋值给寄存器
	例如:MOV AX,[8054]
	如(DS)=2000H,
	则执行完的AX指的物理地址仍不变,但是该地址内的内存单元的数值已经变为20854H处的数值

4、寄存器间接寻址方式:
	操作数在寄存器中,操作数有效地址在SI、DI、BX、BP这四个寄存器之一中。在一般情况下,
	如果有效地址在SI、DI和BX中,则以DS段寄存器中的内容为段值。如果有效地址在BP中,
	则以SS段寄存器中的内容为段值即调动存储在寄存器里的偏移地址
	例如:
	MOV AX,[SI]
	如果(DS)=5000H(SI)=1234H
	则物理地址=50000+1234=51234H
	51234H地址中的内容为:6789H
	执行该指令后,(AX)=6789H

5、寄存器相对寻址方式:
	操作数在存储器中,操作数的有效地址是一个基址寄存器(BX、BP)
	或变址寄存器(SI、DI)的内容加上指令中给定的8位或16位位移量之和
	BX8位位移量
	EA(有效地址)=BP+
	SI16位位移量
	DI
	在一般情况下,如果SI、DI、或BX中的内容作为有效地址的一部分,那么
	引用的段寄存器是DS;如果BP中的内容作为有效地址的一部分,那么引用的
	段寄存器是SS。
	物理地址=16d×(DS)+(BX)+8
	或(SI)或16位位移量
	或(DI)
	物理地址=16d×(SS)+(BP)+8位位移量
	或16位位移量
	在指令中给定的8位或16位位移量采用补码形式表示。在计算有效地址时,如
	位移量是8位,则被带符号扩展成16位。
	例如:
	MOVAX,[DI+1223H]
	假设,(DS)=5000H,(DI)=3678H
	则物理地址=50000+3678+1233=5489BH
	5489BH地址中的内容:55AAH
	执行该指令后AX=55AAH
	下面指令中,源操作数采用寄存器相对寻址,引用的段寄存器是SS:MOVBX,[BP-4]
	下面指令中,目的操作数采用寄存器相对寻址,引用的段寄存器是ES:MOVES:[BX+5],AL
	指令:MOVAX,[SI+3]与MOVAX,3[SI]是等价的

6、基址加变址寻址方式:
	操作数在寄存器中,操作数的有效地址由:
	基址寄存器之一的内容与变址寄存器之一的内容相加
	BXSI
	即:EA=+
	BPDI
	在一般情况下,如果BP之内容作为有效地址的一部分,则以SS之内容为段值,否则已DS
	为段值。
	例如:
	MOVAX,[BX][DI]
	如:(DS)=2100H,
	(BX)=0158H,
	(DI)=10A5H
	则EA=0158+10A5=11FD
	物理地址=21000+11FD=221FDH
	221FDH地址中的内容:1234H
	执行该指令后AX=1234H
	下面指令中,目的操作数采用基址加变址寻址,
	引用的段寄存器是DS:MOVDS:[BP+SI],AL
	下面指令中,源操作数采用基址加变址寻址,
	引用的段寄存器ES:MOVAX,ES:[BX+SI]
	这种寻址方式使用与数组或表格处理。用基址寄存器存放数组首地址,而用变地寄存器
	来定位数组中的各元素,或反之。由于两个寄存器都可改变,所以能更加灵活地访问数
	组或表格中的元素。
	下面的两种表示方法是等价的:
	MOVAX,[BX+DI]
	MOVAX,[DI][BX]

7、相对基址加变址寻址方式:
	操作数在存储器中,操作数的有效地址由于基址寄存器之一的内容与变址寄存器之一的
	内容及指令中给定的8位或16位位移量相加得到。
	BXSI8位
	即:EA=++位移量
	BPDI16位
	在一般情况下,如果BP中的内容作为有效地址的一部分,则以SS段寄存器中的内容为段
	值,否则以DS段寄存器中的内容为段值。
	在指令中给定的8位或16位位移量采用补码形式表示。
	在计算有效地址时,如果位移量是8位,那么被带符号扩展成16位。
	当所得的有效地址操作FFFFH时,就取其64K的模
	例如:
	MOVAX,[BX+DI-2]
	假设,(DS)=5000H,(BX)=1223H,DI=54H,(51275)=54H,(51276)=76H
	物理地址=50000+1223+0054+FFFE(-2各位取反末位加一)=51275H
	执行该指令后(AX)=7654H
	相对基址加变址这种寻址方式的表示方法多种多样,以下四种方法均是等价的:
	MOVAX,[BX+DI+1234H],MOVAX,1234H[BX][DI]
	MOVAX1234H[BX+DI],MOVAX,1234H[DI][BX]





													参考书籍《汇编语言第四版》王爽著,任课老师 胡海芝
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值