问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

什么是源变址寄存器?可以形象点介绍吗?

发布网友 发布时间:2022-04-24 19:39

我来回答

2个回答

热心网友 时间:2023-10-08 22:57

在学汇编时,很多初学者对PC的寻址方式和很不理解,甚至是很难理解。的确,这方面的知识是很抽象的,需要比较强的空间想象能力。尤其是我们在输入字符串时,那这些字符是如何进行排列的呢?对于,这个问题,我相信很多初学者也是很难想象是如何排列。但是,我可以这样比喻:内存就是有很多栋“楼房”,“楼房”又是由“单元号”,“门户号”组成,那“楼房”就相当于内存地址的段地址,“单元号”就相当于内存的的 偏移地址,“门户号(家)”就相当于“变地址”,而每个单元有16个"门户号(家)",又当我们找到"门户号(家)"后,走进这个"门户号(家)"就会见到里面会有"人",而我们所说的人就是寄存器所指的"内容"了,我画个图给你们看就会一目了然了。

用DEBUG的D命令得出这样的效果:

|---------->0B1F就是"楼房"------>段地址
|
| |------>右边的就是"单元号"--->偏移地址
| |
| | |-------->这部分就是"门户号"----->变地址
| | |<------------------------------------------>|
0B1F:0100 00 80 FF 02 75 05 C6 46-00 00 C3 E8 8C EB B4 3B
0B1F:0110 CD 21 72 39 8B FA 33 C0-8B C8 49 26 34 00 0E 0B
'
'
'
[省略]

看完这个图之后,是不是就很明了呢?但是聪明的人就会有疑问,那我们怎么走进"门户号(家)"呢?问得好,所以了为了可以走进"门户号(家)",就出现了一个叫做"寻址方式"的概念!说白了,就是教你如何找到这个"门户号(家)".呵呵!

好现在都明白了吗?那你们就看看我是怎么理解PC的寻址方式(通俗易懂):
在这我就只介绍比较难理解的:

1:寄存器直接寻址:
你就想成:其实你已经站在你要找的"门户号(家)"面前了,直接敲门进去就OK了!
例子: MOV AX,[2000H]
MOV AX,2000H -->2000H为存放操作数单元号的符号地址
上面两者是不等效的

2:寄存器间接寻址方式:
你就想成:你已经站在你要找的"门户号(家)"的"单元号",你要找到它,必须知道它在当前"单元号"几楼.假如它在6楼,那你就上到6楼就OK了!!注意,最高只有16楼,因为什么呢?那就用DEBUG的D命令看看呀,慢慢数哦,呵呵!!
例子: MOV AX,[BX]

计算公式: 物理地址=16d*(DS)+(BX)
物理地址=16d*(DS)+(SI)
物理地址=16d*(DS)+(DI)
物理地址=16d*(SS)+(BP)

3:寄存器相对寻址方式:
你就想成:你要找的"门户号(家)"其实就在你家的楼上或者楼下,你要找到它,就 必须知道它在你楼上几楼,或者在楼下几楼!就OK了!
例子: MOV AX,COUNT[SI]
MOV AX,[COUNT+SI]
其中 COUNT为位移量的符号地址

计算公式: 物理地址=16d*(DS)+(BX)+8位位移量
或+(SI) 或 16位位偏移量
或+(DI)

物理地址=16d*(SS)+(BP)+8位偏移量

4:基址变址寻址方式:
你就想成:你要找的"门户号(家)"是跟住在同一栋楼的不同"单元号",你要找到它,就必须知道它是该栋的哪个"单元号",并且住在几楼!那样你就可以找到它了 !
例子: MOV AX,[BX][DI]
MOV AX,[BX+DI]

计算公式: 物理地址=16d*(DS)+(BX)+(SI)
或+(DI)
物理地址=16d*(SS)+(BP)+(SI)
或+(DI)

5:相对基址变址寻址方式:
你就想成:你就想成:你要找的"门户号(家)"是跟住在同一栋楼的不同"单元号",它比你高几层楼或者低几层楼,然后用的你目前的楼数+/-就可以得出你要找的住在几楼了!
例子: MOV,AX,MASK[BX][SI]
MOV,AX,MASK[BX+SI]
MOV,AX,[MASK+BX+SI]
以上三个例子是等效的!!

计算公式: 物理地址=16d*(DS)+(BX)+(SI)+8位位移量
或+(DI) 或 16位位偏移量
物理地址=16d*(SS)+(BP)+(SI)+8位位移量
或+(DI) 或 16位位偏移量
---------------------------------------------------------------------
呵呵,终于写完了这篇教程,好累哦!! 是不是觉得我的思维很另类呀,要创新呀!
书上太理论了,我就创新一个,不知道你们看得懂吗?
呵呵,反正你们不要!@##)(#$*!@(@我就行了,我很努力写了!!!

下面,我举个程序例子,让你们加深印象!!!

----------------------------------------------------------------------
编程步骤:
1: 建立缓冲区,为输入字符串(最多能输入9个)
2: 取缓冲区的首地址,以便后面进行"寄存器间接寻址方式"
3: 利用"寄存器间接寻址方式"取得实际输入字符个数,以便确认循环次数
4: 利用"寄存器间接寻址方式"输入字符串的最后一个字符
5: 利用LOOP指令和2号显示功能来进行倒着显示
----------------------------------------------------------------------

;程序功能:任意输入几个字符(最多能输入9个),按回车则倒着输出!

data segment
user_string db 10,0,10 p(?)
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
lea dx,user_string ;建立输入字符串缓冲区
mov ah,0ah
int 21h
xor si,si
xor bx,bx
mov bx,dx
mov cx,[bx+si+1] ;看这个就是"寄存器间接寻址方式"
xor ch,ch ;其目的就是取实际输入字符个数
mov di,cx
lop: mov ah,2
mov dx,[bx+di+1];看这又是"寄存器间接寻址方式"
int 21h ;其目的就是取输入字符串的最后一个字符
dec di
loop lop ;依次循环倒着输出字符
mov ah,4ch
int 21h
code ends
end start

热心网友 时间:2023-10-08 22:58

在8086中 源变址寄存器有两个 分别为 SI 和 DI
这两个寄存器一般是用在 基址变址寻址和相对基址变址寻址 这两种寻址方式中

也就是说 有效地址要由一个基址寄存器和一个变址寻址寄存器一起来确定

(基址寄存器 也有两个 BX 和 BP)

例如 mov al,[bx+si]
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
308S标注使用0W-30的机油,如果用5w-40的有影响么 如果飞船在飞行时遇到一粒沙,飞船是否会直接报废?为什么呢?_百度... 火车或地铁行驶中的苍蝇或蚊子这些飞虫是怎么飞的 我一直很疑惑,在地铁公交上的飞虫蚊子之类的,它们不停在杆上,就这么... 固态硬盘的读取是不是都比写入要快啊?才买了个东芝的Q Pro,发现写入496... 我是非护理专业的专科生 但我想考护理资格证 该怎么办呢 我是非护理专业的专科生 但我想考护理资格证 该怎么办? 中专非护理专业单招可以考护理吗 苹果宣布的AppleWatchSeries6和AppleWatchSE有哪些新功能和价格? 描写榕树生命力顽强的诗句 牛汇外汇怎么样?是正规平台不? bfs牛汇的公司简介 三菱PLC变址寄存器 BFS牛汇平台怎么样? 三菱plc变址寄存器存在的意义? 牛汇和福汇哪个外汇交易平台好一点? 请问牛汇账户怎么出金? 变址寄存器的介绍 牛汇平台怎么样? 变址寄存器是什么?是怎样工作的? 牛汇平台是不是黑平台? 汇编语言中什么是基址变址寄存器? 什么叫基址寄存器,什么叫变址寄存器,还有偏移量,它们有什么区别 变址寄存器的概述 什么是基址寄存器,什么是源变址寄存器,什么是目的变址寄存器?他们的功能又是什么? PLC中,变址寄存器是什么意思?有什么用,谢谢 QQ中的举报是什么意思 QQ问题QQ里面的举报是什么意思啊,举报后 QQ里面的举报是什么意思啊,举报后有什 QQ举报是什么意思 DMOV变址寄存器,PLC 有没有人知道牛汇交易开户流程?详细点的 PLC中变址寄存器V Z怎么使用? BFS牛汇开户需要什么条件啊? 变址寻址方式等于基址寄存器内容加上变址寄存器内容加上形式地址? 牛汇平台强行平仓比例是多少? 变址寄存器在运算中起什么作用 牛汇的点差是多少? 三菱PLC V Z变址寄存器有什么作用啊,什么时候用?能举些例子并解释下最好 牛汇炒外汇优惠怎么样? 三菱plc 为什么要用变址寄存器 新手炒汇在牛汇该怎样入手? 如何用变址寄存器修改各数据寄存器的内容? 牛汇的点差和FXCM福汇比,有什么优势? 牛汇开户方便吗?具体流程是什么? 牛汇出金如何? 牛汇外汇开户步骤有哪些 听说BFS牛汇是黑马平台?用过的朋友说一下出金怎么样 我们中国古代有哪些神话故事是讲述了宇宙的起源、人类的起源? 关于宇宙起源的中国神话有精卫吗?