实验2 指令系统、寻址方式及源程序结构

合集下载

汇编语言第3章 指令系统和寻址方式

汇编语言第3章 指令系统和寻址方式

5.寄存器相对寻址方式(register relative addressing)
EA=基址(base) 或变址( index)+偏移量 (displacement)
基址寄存器有:BX,BP 变址寄存器有:SI,DI 注:默认段是数据段和堆栈段
(SI) 物理地址=(DS)*16+(BX)+displacement
(DI) =(SS)*16+(BP)+ (SI)+displacement (DI)
例:mov AX,ARRAY[BX][DI] (DS)=1000H,(BX)=1200H, (DI)=1000H, ARRAY=1000H 物理地址=DS*16+(BX)+(DI)+ARRAY =DS*16+1200+1000+1000=13200H 若:(13200)=34H,(13201)=12H 则,(AX)=1234H 允许段超越。 例:mov AL,ES:ARRAY[BX][DI] 用途:处理成组数据(举例说明)
2.段内间接寻址(intrasegment indirect addressing) (IP)新=EA=寄存器或存储单元的内容 寄存器:所有寄存器寻址方式可用的寄存器 存储单元:所有存储单元寻址方式均适用 例:JMP SI (IP)=(SI) JMP WORD PTR VAR或简写JMP VAR (DS)=1000H,VAR=2000H 存储单元的物理地址=(DS)*16+VAR=12000H (12000H)=1234H 则,(IP)新=1234H
4.寄存器间接寻址方式(register indirect addressing)
EA=基址(base) 或变址( index) 基址寄存器有:BX,BP 变址寄存器有:SI,DI 注:默认段是数据段和堆栈段 (SI) 物理地址=(DS)*16+(BX) (DI) =(SS)*16+(BP)

【计算机组成原理】指令系统-寻址

【计算机组成原理】指令系统-寻址

【计算机组成原理】指令系统-寻址⼀、指令和数据的寻址⽅式操作数或指令在存储器中的地址:某个操作数或某条指令存放在某个存储单元时其存储单元的编号在存储器中,操作数或指令字写⼊或读出的⽅式,有地址指定⽅式、相联存储⽅式和堆栈存取⽅式。

寻找⽅式:当采⽤地址指定⽅式时,形成操作数或指令地址的⽅式。

寻址⽅式分为两类:指令寻址和数据寻址。

1)指令寻址:确定下⼀条预执⾏指令的指令地址a、顺序寻址:(PC)+1->PC 程序计数器⾃动加1b、跳跃寻址:由转移指令指出2)数据寻址:确定本条指令的操作数地址指令中所给出的地址码,并不⼀定是操作数的有效地址。

寻址过程就是把操作数的形式地址,变换为操作数的有效地址。

例如:⼀种单地址指令的结构如下所⽰,其中⽤X I D各字段组成该指令的操作数地址。

⼆、寻址⽅式1、隐含寻址(操作数在累加寄存器中)在指令中不明显的给出⽽是隐含着操作数的地址例如:单地址的指令格式,没有在地址字段指明第⼆操作数地址,⽽是规定累加寄存器AL或AX作为第⼆操作数地址,AL或AX对单地址指令格式来说是隐含地址eg: MOV AL ,LSRC_BYTEMUL RSRC_BYTEADD寻址特征A操作数地址隐含在操作码中,(寻址特征指明寻址类型)。

另⼀个操作数隐含在ACC中先在内存中地址为A的地⽅找到⼀个操作数,另⼀个操作数隐含在寄存器ACC⾥,从ACC⾥取出另外⼀个操作数,然后和给出的A 地址中的数相加暂存在ACC中。

2、⽴即寻址形式地址A就是操作数本⾝OP⽴即寻址特性 #A指令执⾏阶段不访存A的位数限制了⽴即数的范围3、直接寻址EA=A直接根据读内存找到操作数,形式地址不需要经过任何处理。

执⾏阶段访问⼀次存储器A的位数决定了该指令操作数的寻址范围MOV AX,[2222H]:将有效地址为2222H的内存单元的内容读到累加器AX中4、间接寻址EA=(A)有效地址由形式地址间接提供,形式地址是操作数的地址的地址OP间接寻址标识 A根据A的内容到内存中寻找到的是操作的数地址,再根据这个地址去找操作数。

计算机系统结构教程答案chap2-answer

计算机系统结构教程答案chap2-answer

第二章计算机指令集结构设计2.1 名词解释堆栈型机器——CPU中存储操作数的单元是堆栈的机器。

累加型机器——CPU中存储操作数的单元是累加器的机器。

通用寄存器型机器——CPU中存储操作数的单元是通用寄存器的机器。

CISC——复杂指令集计算机。

RISC——精简指令集计算机。

2.2 堆栈型机器、累加器型机器和通用寄存器型机器各有什么优缺点?2.3 常见的三种通用寄存器型机器的优缺点各有哪些?2.4 指令集结构设计所涉及的内容有哪些?指令集功能设计:主要有RISC和CISC两种技术发展方向;寻址方式的设计:设置寻址方式可以通过对基准程序进行测试统计,察看各种寻址方式的使用频度,根据适用频度设置相应必要的寻址方式;操作数表示和操作数类型:主要的操作数类型和操作数表示的选择有,浮点数据类型(可以采用IEEE 754标准)、整型数据类型(8位、16位、32位的表示方法)、字符型(8位)、十进制数据类型(压缩十进制和非压缩十进制数据表示)等等。

寻址方式的表示:可以将寻址方式编码与操作码中,也可将寻址方式作为一个单独的域来表示。

指令集格式的设计:有固定长度编码方式、可变长编码方式和混合编码方式三种选择。

2.5 简述CISC计算机结构指令集功能设计的主要目标。

从当前的计算机技术观点来看,CISC结构有什么缺点?CISC结构追求的目标是强化指令功能,减少程序的指令条数,以达到提高性能的目的。

从目前的计算机技术观点来看,CISC结构存在以下几个缺点:(1) 在CISC结构的指(2) 令系统中,(3) 各种指(4) 令的使用频率相差悬殊。

(5) CISC结构的指(6) 令系统的复(7) 杂性带来了计算机体系结构的复(8) 杂性,(9) 这不(10) 仅增加了研制时间和成本,而(11) 且还容易造成设计错误。

(12) C ISC结构的指(13) 令系统的复(14) 杂性给VLSI设计带来了很大负担,(15) 不(16) 利于单片集成。

学习情景二AT89S52系列单片机寻址方式及指令系统

学习情景二AT89S52系列单片机寻址方式及指令系统

学习情景二AT89S52系列单片机寻址方式及指令系统————————————————————————————————作者:————————————————————————————————日期:2学习情景二AT89S52系列单片机寻址方式及指令系统学习目标:➢熟练掌握MCS-51单片机的寻址方式和指令系统➢能编写简单完整的程序➢掌握标志位技能目标:➢能够对工作任务进行分析,找出相应算法,绘制流程图。

➢能够根据流程图编写程序。

➢会使用Keil C51 μVision2集成开发环境,观察与修改存储器。

项目一片内存储器及特殊功能寄存器第一部分项目要求在Keil C51 μVision2集成开发环境下,在编辑窗口编辑给定程序,观察片内RAM工作寄存器区、内部RAM位寻址区、RAM间接与直接寄存器区、内部RAM间接寻址区、内部RAM特殊功能寄存器区、外部RAM区(XRAM)的数据,并根据要求进行修改,说明每条指令的寻址方式。

第二部分相关知识一、AT89S52单片机寻址方式寻址方式是指CPU寻找操作数或操作数地址的方法。

具体来说寻址方式就是如何找到存放操作数的地址,把操作数提取出来的方法,它是计算机的重要性能指标之一,也是汇编语言程序设计中最基本的内容之一.比如完成“5+8=13”的简单运算,在计算机中加数和被加数存放在什么地方?CPU如何得到它们?运算结果存放在什么地方?这些就是寻址问题。

实际上计算机执行策划能够寻址的过程是不断地寻找操作数并进行操作的过程。

一般来讲,寻址方式越多,计算机的寻址能力就越强,但指令系统也就越复杂。

AT89S52寻址方式共有7种:立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、相对寻址、基寄存器加变址寄存器间接寻址和位寻址。

12二、AT89S52单片机指令寻址存放指令代码的地址称指令地址。

指令存放是在程序存储器中,是按顺序存放的,执行时也是按指令地址顺序执行,除非是转移。

存放数据的地址称操作数地址.数据的存放是任意的,无规律. 操作数的来源为:A .操作数在指令中B .操作数在存储器中C .操作数在寄存器中D .操作数在I/O 端口中因为AT89S52与MCS-51单片机指令系统兼容,故下面介绍MCS —51单片机的指令及寻址方式。

单片机指令系统与汇编语言程序设计

单片机指令系统与汇编语言程序设计

例如程序:
ORG
START: MOV
MOV
1000H A,#20H B,#30H

a
5
(2)结束汇编伪指令END 格式:[标号:] END [表达式] 功能:放在汇编语言源程序的末尾,表明源程序的汇编到此 结束,其后的任何内容不予理睬。
(3)赋值伪指令EQU 格式:字符名称x EQU 赋值项n 功能:将赋值项n的值赋予字符名称x。程序中凡出现该字符
字(Word):通常由16位二进制数码组成,即1Word=2Byte。
字长:字长是指计算机一次处理二进制数码位的多少。MCS51型单片机是8位机,所以说它的字长为8位。
MCS-51系列单片机都是以Intel公司最早的典型产品8051 为核心,增加了一定的功能部件后构成的。本章以8051为主介 绍MCS-51系列单片机 。
a
1
2.1 概述
指令系统:一台计算机所能识别、执行的指令的集合就是它 的指令系统。
机器语言:指令系统是一套控制计算机执行操作的二进制编 码,称为机器语言。机器语言指令是计算机惟一能识别和执 行的指令。
汇编语言:指令系统是利用指令助记符来描述的,称为汇编 语言。
计算机的指令系统一般都是利用汇编语言描述的,是由 计算机硬件设计所决定的。指令系统没有通用性。
(5)定义双字节伪指令DW 格式:[标号:] DW x1, x2,…, xn 功能:将双字节数据[或双字节数据组]顺序存放在从标号指定
地 存址储单单元元开,始先的存存高储8位单(元存中入。低其位中地,址x单i为元16中位)数,值后常存数低,8占位两(个存 入高位地址单元中)。
a
7
(6)预留存储空间伪指令DS
伪指令只出现在汇编前的源程序中,仅提供汇编用的某些控制 信息,不产生可执行的目标代码,是CPU不能执行的指令。

寻址方式和指令系统

寻址方式和指令系统

寻址⽅式和指令系统《微机原理》复习思考题第3章 8086的寻址⽅式和指令系统3.1 8086汇编语⾔指令的寻址⽅式有哪⼏类?⽤哪⼀种寻址⽅式的指令执⾏速度最快?3.2 直接寻址⽅式中,⼀般只指出操作数的偏移地址,那么,段地址如何确定?如果要⽤某个段寄存器指出段地址,指令中应如何表⽰?3.3 在寄存器间接寻址⽅式中,如果指令中没有具体指明段寄存器,那么,段地址如何确定?3.4 ⽤寄存器间接寻址⽅式时,BX,BP,SI,DI分别针对什么情况来使⽤?这四个寄存器组合间接寻址时,地址是怎样计算的?举例进⾏说明。

3.5 设DS=2100H,SS=5200H,BX=1400H,BP=6200H,说明下⾯两条指令所进⾏的具体操作:MOV BYTE PTR [BP], 2000MOV WORD PTR [BX], 20003.6 使⽤堆栈操作指令时要注意什么问题?传送指令和交换指令在涉及内容操作数时分别要注意什么问题?3.7 下⾯这些指令中哪些是正确的?哪些是错误的?如果是错误的,请说明原因。

XCHG CS, AXMOV [BX], [1000]XCHG BX, IPPUSH CSPOP CSIN BX, DXMOV BYTE[BX], 1000MOV CS, [1000]3.8 8086系统中,当对SS和SP寄存器的值进⾏修改时,有什么特殊规定?这样做的原因是什么?[解答] 凡是遇到给SS寄存器赋值的传送指令时,系统会⾃动禁⽌外部中断,等到本条指令和下条指令执⾏之后,⼜⾃动恢复对SS寄存器赋值前的中断开放情况。

这样做是为了允许程序员连续⽤两条指令分别对SS和SP寄存器赋值,同时⼜防⽌堆栈空间变动过程中出现中断。

3.9 以下是格雷码的编码表0——0000 1——0001 2——0011 3——0010 4——01105——0111 6——0101 7——0100 8——1100 9——1101请⽤换码指令和其他指令设计⼀个程序段,实现格雷码往ASCII的转换。

计算机系统结构课后答案chap2-answer

计算机系统结构课后答案chap2-answer

第二章计算机指令集结构设计2.1 名词解释1.堆栈型机器——CPU中存储操作数的单元是堆栈的机器。

2.累加型机器——CPU中存储操作数的单元是累加器的机器。

3.通用寄存器型机器——CPU中存储操作数的单元是通用寄存器的机器。

4.CISC——复杂指令集计算机。

5.RISC——精简指令集计算机。

2.2堆栈型机器、累加器型机器和通用寄存器型机器各有什么优缺点?2.3常见的三种通用寄存器型机器的优缺点各有哪些?2.4 指令集结构设计所涉及的内容有哪些?(1)指令集功能设计:主要有RISC和CISC两种技术发展方向;(2)寻址方式的设计:设置寻址方式可以通过对基准程序进行测试统计,察看各种寻址方式的使用频度,根据适用频度设置相应必要的寻址方式;(3)操作数表示和操作数类型:主要的操作数类型和操作数表示的选择有,浮点数据类型(可以采用IEEE 754标准)、整型数据类型(8位、16位、32位的表示方法)、字符型(8位)、十进制数据类型(压缩十进制和非压缩十进制数据表示)等等。

(4)寻址方式的表示:可以将寻址方式编码与操作码中,也可将寻址方式作为一个单独的域来表示。

(5)指令集格式的设计:有固定长度编码方式、可变长编码方式和混合编码方式三种选择。

2.5 简述CISC计算机结构指令集功能设计的主要目标。

从当前的计算机技术观点来看,CISC结构有什么缺点?CISC结构追求的目标是强化指令功能,减少程序的指令条数,以达到提高性能的目的。

从目前的计算机技术观点来看,CISC结构存在以下几个缺点:(1)在CISC结构的指令系统中,各种指令的使用频率相差悬殊。

(2)CISC结构的指令系统的复杂性带来了计算机体系结构的复杂性,这不仅增加了研制时间和成本,而且还容易造成设计错误。

(3)CISC结构的指令系统的复杂性给VLSI设计带来了很大负担,不利于单片集成。

(4)CISC结构的指令系统中,许多复杂指令需要很复杂的操作,因而运行速度慢。

指令系统和汇编语言程序设计实验报告

指令系统和汇编语言程序设计实验报告

指令系统和汇编语⾔程序设计实验报告指令系统和汇编语⾔程序设计实验报告姓名:XXX班级:XXXXXXX学号:0000003.2 指令系统实验实验⼀熟悉键盘操作及数传指令编程设计⼀、实验⽬的1.熟悉软件模拟调试的环境及键盘操作。

2.掌握汇编语⾔程序设计的⽅法,加深对指令的理解。

3.学会软件模拟调试和察看修改观察项的⽅法。

⼆、实验内容印证数据传送指令的功能、寻址⽅式以及PC指针、SP指针、DPTR指针、Ri指针分别对代码段、堆栈段、外扩数据存储器段、位寻址区等不同存储器的访问⽅式。

三、实验步骤1.进⼊调试软件环境,输⼊源程序;2.汇编源程序;3.⽤单步⽅式运⾏程序;4.检查并记录各寄存器和存储单元内容的变化。

四、程序清单及实验结果1.内部RAM数据传送1)寄存器寻址与⽴即寻址,需要查看的数据有A、PSW和不同寄存器区的Rn等单元的内容。

ORG 0000HMOV PSW,#00HMOV R0,#30HMOV A,R0MOV R6,AMOV PSW,#14HMOV R0,#30HMOV A,R0MOV R6,AMOV PSW,#10HMOV R6,AMOV PSW,#08HMOV R0,#30HMOV A,R0MOV R6,ASJMP $数据记录:2) 直接寻址,需查看30H、31H、32H、40H、ACC、PSW等单元的内容。

ORG 0100H MOV 30H,#45HMOV 31H,#46HMOV 02H,31HMOV 0E0H,30HMOV 32H,ACCMOV ACC,PSWMOV 40H,ACCSJMP $END数据记录:3)寄存器间接寻址,需查看@R0、RO等的内容。

SJMP $END数据记录:2.外部数据传送需要查看的数据有外部数据存储器单元2000H,外部程序存储器单元2001H。

ORG 0000HMOV A,#89HMOV DPTR,#2000HMOVX @DPTR,AINC DPTRCLR AMOVC A,@A+DPTRSJMP $ORG 2000HDB 44HDB 78HDB 67HEND数据记录:3.堆栈操作需要查看的数据有50H、51H、A及SP指针和堆栈区中数据随PUSH和POP指令执⾏后1)可⽤于保护现场和恢复现场的程序ORG 0000HMOV A,#12HPUSH 50HPUSH 51HPUSH ACCPOP 0E0HPOP 51HPOP 50HSJMP $END数据记录:2)可⽤于数据交换的程序ORG 0100HMOV SP,#6FHMOV 50H,#3BHMOV 51H,#2FH PUSH 50HPUSH 51HPOP 50HPOP 51HSJMP $数据记录:4.数据交换记录每条指令运⾏后的结果,从⽽加深对各种不同的交换指令的理解。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二指令系统、寻址方式及源程序结构
实验目的:
1. 熟悉8088/8086的数据传送和算术运算指令的书写格式、功能。

2. 熟悉各种寻址方式。

3. 掌握汇编语言源程序结构,熟悉常用伪指令,编写完整的源程序。

4. 掌握汇编、连接、运行汇编源程序的全过程;使用DEBUG调试和运行汇编源程序。

实验内容:
安装MASM WINDOWS 集成实验环境 2011
在硬盘F中建立自己的文件夹,以“班级姓名”命名(比如计科1111张三),实验文件以“实验次数-序号”命名,比如sy2-1.asm。

1、验证指令格式
用A命令写入汇编指令,使用寄存器、段寄存器、存储器和立即数等作为操作数,验证mov、add指令的格式并得出结论。

2、理解不同的寻址方式
假设(DS)=2000H, (BX)=0100H, (SI)=0002H, (20100)=12H, (20101)=34H, (20102)=56H, (20103)=78H, (21200)=2AH, (21201)=4CH, (21202)=B7H, (21203)=65H.,请分析下列7条指令的源操作数各自使用何种寻址方式以及每条指令执行后AX的值。

然后使用Debug命令设置上述寄存器及存储单元的内容,再用汇编(A)、单步执行(T)等命令验证每条指令执行后AX的值。

(1)MOV AX,1200H
(2) MOV AX,BX
(3) MOV AX,[1200H]
(4) MOV AX,[BX]
(5) MOV AX,1100[BX]
(6) MOV AX,[BX][SI]
(7) MOV AX,1100[BX][SI]
3、编写源程序
假设有3个数x, ,y z,其中x=1234h,y=0c3f6h,z=10c5h,分别保存在内存单元X、Y、Z。

请编写源程序,计算x+ 2z -y,结果保存在Z单元中,并用debug调试运行,查看每条指令的执行结果,观察标志位变化情况。

其中X、Y、Z单元在数据段定义。

程序结构如下:
DATA SEGMENT ;定义数据段DATA
X DW 1234H
Y DW 0C3F6H
Z DW 10C5H
DATA ENDS
CODE SEGMENT ;定义代码段CODE
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
;请补充完表达式计算的语句
MOV AX,4C00H
INT 21H
CODE ENDS
END START
4、课外实验:
完成教材277页的10.3.1 顺序程序设计的任务。

实验报告要求:
1、总结MOV、ADD指令的格式要求。

2、指出每条指令源操作数使用的寻址方式以及执行后AX的值。

3、总结源程序从编写到执行的过程。

写出用DEBUG调试并运行可执行文件的过程,如何查看执行结果?
4、用换码指令XLAT改写教材277页的例10.1。

相关文档
最新文档