第二章 寻址方式与汇编语言程序的组织 学习笔记

2 寻址方式与汇编语言程序的组织
2.1 汇编语言
2.11 机器语言
-CPU能直接识别并遵照执行的指令称为机器指令。
-机器指令一般由操作码和操作数两部分构成,操作码在前,操作数在后。
-操作码指出要进行的操作或运算,如加、减、传送等。
-操作数指出参与操作或运算的对象,也指出操作或运算结果存放的位置,如CPU的寄存器、存储单元和数据等。
-机器语言是CPU能直接识别的唯一语言。
-有如下缺点:不能用人们熟悉的形式来描述计算机要执行的任务;编写程序是十分困难,易出错;有错,难发现,即调试困难。
2.12 汇编语言
-汇编语言是为了克服机器语言的缺点而产生的。
-为了克服机器语言的缺点,采用便于记忆和描述指令功能的符号来表示指令的操作码。
-用指令助记符、地址符号等符号表示的指令称为汇编格式指令。
-汇编语言是汇编格式指令、伪指令的集合及其表示、使用这些指令的一组规则。

2.2 寻址方式
-计算机指令是由操作码字段和操作数地址码字段两部分组成的,操作码字段指示计算机要执行的操作,操作数地址码字段则指出在指令执行操作的过程中所需要操作数的地址。
例:将BX寄存器中的数据传送到AX寄存器中去的指令为:
MOV AX BX
操作码 目的操作数 源操作数
地址码 地址码
-操作数地址码字段除使用立即数外,给出的是操作数的存放地址,如内存单元地址或寄存器或I/O地址。
2.2.1 数据寻找方式
立即寻址
-指令中的操作数为常数,则存储时紧跟在操作码之后,作为指令的一部分存在代码段里,这种操作数称为立即数。
MOV AL ,05H ;执行后(AL)=05H
MOV AX ,1234H ;执行后(AX)=1234H
-分号表示对指令的注释。
-字节的存放按照“高高低低”原则,高位字节存放在高地址中,地位字节存放在地址中。
-立即数寻找方式用于给寄存器或存储单元赋初值,只能用于源操作数字段,不能用于目的操作数数字段。

寄存器寻址
-操作数在CPU内部的寄存器中,指令中指定寄存器名,寄存器可以是8位、16位或32位的。
MOV AX ,01E0H ;(AX)<—01E0H
-指令中源操作耍是立即寻址,目的操作数是寄存器寻址。
MOV AX , BX ;(AX)<—(BX)
-指令中源操作数和目的操作数都是寄存器寻址。这钟情况下,两个寄存器的长度必须一样。
-这种寻址方式的指令执行速度最快,是由于操作数在CPU内部的寄存器中,不需要通过访问存储器来取得操作数。
直接寻址
-操作数的偏移地址称为有效地址EA(Effictive Address)
-有效地址EA在指令中直接给出,它存放在代码段中指令操作码之后,但操作数一般存放在数据段(DS)中,所以必须先求出操作数的物理地址,然后在访问存储器才能取得操作数。
例如:
MOV AX,[1200H]
-指令中直接给出了源操作数存放在数据段中,有效地址EA=1200H,设DS=2000H,则物理地址为:
PA=(DS)*10H+EA=20000H+1200H=21200H
-可以用符号地址代替数值地址,如:
MOV AX,VALUE
-若要指定段时,要指定段跨越前缀、如:
MOV AX,ES:VALUE

寄存器间接寻址
操作数的有效地址在基址寄存器BX、BP或变址寄存器SI、DI中,而操作数在存储器中。
-书写格式是寄存器加上方括号,例如:
MOV AX ,[SI]
-指令的功能是数据段中以SI寄存器的内容为偏移地址的字存储单元(即SI指向的存储单元)内容传送给AX寄存器。
操作数的物理地址为:
PA=10H(DS)+(BX)
PA=10H
(DS)+(SI)
PA=10H(DS)+(DI)
PA=10H
(SS)+(BP)

寄存器相对寻址
-操作数的有效地址是一个基址或变址寄存器的内容和指令中指定的8位或16位的位移量之和。即:
EA=(寄存器)+位移量
-在实模式下,除有段跨越前缀者外,对于寄存器为BX、SI、DI的情况,段寄存器用DS,而寄存器用BP,则使用SS段寄存器的内容作为段地址。
物理地址=10H(DS)+(BX)或(DI)或(SI)+8或16位位移量

物理地址=10H
(SS)+(BP)
-书写格式如:
MOV AX,COUNT[BX]
其中,COUNT可以是符号地址,也可以是常数。

基址加变址寻址
操作数的有效地址是一个基址寄存器和一个变址寄存器的内容之和。
物理地址=10H(DS)+(BX)+(DI)或(SI)

物理地址=10H
(SS)+(BP)+(DI)或(SI)
-书写格式如:
MOV AX,[BX][SI]

相对基址加变址寻址
操作数的有效地址是一个基址寄存器和一个变址寄存器的内容和8位或16位位移量之和。
物理地址=10H(DS)+(BX)+(DI)或(SI)+8或16位位移量

物理地址=10H
(SS)+(BP)+(DI)或(SI)+8或16位位移量
-书写格式如:
MOV AX,ARRAY[BX][SI]

比例变址寻址
比例变址是指一对寄存器中的第二用比例因子2、4或8来乘,产生操作数的内存地址。
例如:
MOV EDX,[EAX+4*EBX]
-指令将由EAX加上4倍EBX寻址的数据段存储单元的内容装入EDX。

2.2.2程序存储器寻址
直接(程序存储器)寻址跨段直接寻址
转换的段地址和偏移地址是直接由指令提供的。

操作:
(CS) = FAR_LABEL的段地址
(IP) = FAR_LABEL的偏移地址
例子:
JMP FAR PTR FAR_LABEL

FAR_LABEL 是远标号, 代表目标地址
相对(程序存储器)寻址 移位相对IP。

操作:
(IP) = (IP)+ 8 位位移(短转换)
(IP) = (IP)+ 16 位位移(近转换)
JMP SHORT LABEL8 ;短转换
JMP NEAR PTR LABEL16 ;近转换
JMP $+ shift

;LABEL8 是8位移位,LABEL16i是16位移位

间接(程序存储器)寻址段内间接寻址


要转移去的目的的偏移地址,存储在任何16位寄存器或者内存单元中

有两种类型的(程序存储器)间接寻址方式
**寄存器间接寻址 **
内存间接寻址


堆栈寻址
CALL 指令保存程序的返回地址,
RET (return) 指令从堆栈中取出返回地址。

在实模式下,
SP常常指向最后入栈的元素。
实模式下, 栈结尾的物理地址:
** PA = (SS)10H+(SP)*
例(a) :
PUSH BX
操作:
(SP)=(SP)-2
((SP)+1)=(BH)
((SP))=(BL)

例(b) :
POP CX
操作:
(CL)=((SP))
(CH)=((SP)+1)
(SP)=(SP)+2
SP常常指向下一个即将要出栈的元素.
PA= (SS)*10H+(SP)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,948评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,371评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,490评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,521评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,627评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,842评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,997评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,741评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,203评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,534评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,673评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,339评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,955评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,770评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,000评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,394评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,562评论 2 349

推荐阅读更多精彩内容