实验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.1 寻址方式与基本指令实验2.1.1 实验目的1、熟悉80x86寻址方式及基本指令的功能,进一步理解和巩固课堂学习内容。

2、掌握汇编语言程序设计上机过程, 掌握汇编语言源程序结构,为后续汇编语言程序设计打好基础。

3、熟悉Microsoft的DEBUG或Borland的Turbo DEBUG调试工具的使用方法2.1.2 实验预习要求1、认真阅读本书第一部分第1章,熟悉汇编语言程序设计上机步骤。

2、认真阅读本书第三部分,熟悉DEBUG调试工具的使用方法。

3、复习80x86操作数寻址方式及基本指令(数据传送、算术运算和逻辑运算等)。

4、了解实验内容,并在实验前根据课堂所学知识回答有关问题(个别取决于程序实际运行环境的问题除外),以便在实验时进行验证。

2.1.3 实验内容1、读懂下列源程序,使用EDIT生成名为EX11.ASM的源程序,汇编生成EX11.OBJ文件和EX11.LST文件,连接生成EX11.EXE文件;用EDIT打开EX11.LST文件,了解.LST文件包含的信息;使用DEBUG调试工具单步执行EX11.EXE程序,注意观察IP值的变化,并回答下列问题。

(1)程序装入后,代码段寄存器CS的内容为___0711_____H,代码段第一条可执行指令MOVA X, DATA对应的机器代码为____B81007______H,它是一个_____3__字节指令,注意观察执行该指令时IP值的变化情况,该指令源操作数DATA的寻址方式是______寄存器间接寻址____,其值为____82H______。

(2)执行完MOV DS, DA TA指令后,数据段寄存器DS的内容为___076A_____H,源程序在数据段中定义的数据82H、68H和88H被装入的存储单元的物理地址分别为__076B8______H、___076BA_____H和____076BE____H。

(3)程序中第一条ADD AL, [BX] 指令对应的机器代码为___0207_______H,它是一个____2____字节指令,注意观察执行该指令时IP值的变化情况;该指令中源操作数的寻址方式为_____寄存器间接寻址_____,该操作数所在存储单元的逻辑地址(DS): (BX)为___076A:0001______,其物理地址为_____076A0_____H;执行完该指令后(AL)=__EA___H,CF=___0___,OF__0____,ZF_0_____,SF__1____,AF__0____,PF__0____;若两操作数为无符号数,计算结果是否正确___正确____?若两操作数为带符号数,计算结果是否正确____正确____?若计算结果正确,结果是正数还是负数___正数___?(4)执行完第二条ADD AL, [BX] 指令后(AL)=___72__H,CF=___1___,OF___1___,ZF____0__,SF___0___,AF___1___,PF____1__;若两操作数为无符号数,计算结果是否正确___正确____?若两操作数为带符号数,计算结果是否正确____不正确____?(5)指令MOV SUM, AL中目的操作数的寻址方式为_____基址变址寻址方式_____。

8086实验

8086实验

实验一、寻址方式与基本指令实验一、实验目的1.熟悉8086寻址方式及基本指令功能,进一步理解和巩固课学习内容。

2.掌握汇编语言程序设计上机过程和汇编语言源程序结构。

3.熟悉Microsoft的DEBUG调试工具的使用方法。

二、实验预习要求1.认真阅读教科书第三章,了解并熟悉汇编语言程序的上机步骤及DEBUG调试工具的使用方法。

2.复习8086操作数寻址方式及基本指令功能(数据传送、算术运算和逻辑运算等)。

3.了解实验内容,并在实验前根据课堂所学知识回答有关问题(个别取决于程序实际运行环境的问题外),以便在实验时进行验证。

三、实验内容1.读懂下列源程序,使用EDIT生成名为EX11.ASM的源程序,汇编生成EX11.OBJ文件和EX11.LST文件,连接生成EX11.EXE文件;用EDIT打开EX11.LST文件,了解.LST文件包含的信息;使用DEBUG调试工具单步执行EX11.EXE程序,注意观察IP值的变化,并回答下列问题。

1)程序装入后,代码段寄存器CS的内容为H,代码段第一条可执行指令“MOV AX,DATA”对应的机器代码为H,它是一个字节指令,注意观察执行该指令时IP的变化情况,该指令源操作数DATA的寻址方式是,其值为。

2)执行完“MOV DS,DATA”指令后,数据段寄存器DS的内容为H,源程序在数据段中定义的数据库82H、68H和88H被装入的存储单元的物理地址分别为H,H和H。

3)程序中第一条“ADD AL,[BX]”指令对应的机器代码H,它是一个字节指令,注意观察执行该指令时IP的变化情况,该指令中源操作数的寻址方式为,该操作数所在存储单元的逻辑地址(DS):(BX)为,物理地址为H;执行完该指令后(AL)= H,CF= ,OF= ,ZF= ,SF= ,AF= ,PF= ;若两操作数为无符号数,计算结果是否正确?若两操作数为带符号数,计算结果是否正确?若计算结果正确,结果是正数还是负数?4)执行完第二条“ADD AL,[BX]”指令后,(AL)= H,CF= ,OF= ,ZF= ,SF= ,AF= ,PF= ;若两操作数为无符号数,计算结果是否正确?若两操作数为带符号数,计算结果是否正确?5)指令“MOV SUM,AL”中,目的操作数的寻址方式为,该指令执行完后,注意观察(DS):0003H单元中值的变化,该单元的值变为H。

单片机实验-寻址方式和指令系统实验指导书

单片机实验-寻址方式和指令系统实验指导书

实验6. 寻址方式和指令系统一.实验目的1.了解MSP430G2xxx汇编格式指令和常用寻址方式2.了解C语言函数调用过程3.通过反汇编了解C编译器实现初始化变量的方法4.掌握计算机中数的表示和编码二. 实验任务1.汇编格式指令和寻址方式的学习(可在simulator下完成)L6_1.c源程序见下,建立C项目,进入DEBUG状态,点击view/disassembly,在反汇编窗口得到L6_1.c汇编格式指令的程序代码,如图6-1和图6-2,阅读该程序的汇编格式代码,思考:1) 程序用到了哪些指令?2) 程序用到了哪几种寻址方式?3)用单步执行命令F11,跟踪函数delay的调用和返回,用view/register和view/ memory查看堆栈指针SP和堆栈内的内容,记录堆栈指针SP和堆栈内容的变化;4) 修改l6_1.C,将变量i定义为全局变量,通过反汇编的代码,比较与定义为局部变量的不同;5) 修改L6_1.C, 将变量i的类型从 unsigned int 类型,改为unsigned long 类型,反汇编看看函数delay的代码发生了什么变化?程序执行的结果有什么不同?为什么?(需在实验板上运行)。

L66__1.c程序清单(提供电子版)图6-1 L6-1.c程序中main函数的反汇编代码图6-2 L6_1.c程序中delay函数的反汇编代码2. 了解C语言程序的执行过程(可在simulator 方式下完成)指令计数寄存器PC决定CPU取指令的地址,所以PC寄存器的内容决定了程序的流程。

已知MSP430G2xxx单片机复位后, PC寄存器从存储器0xFFFE~0xFFFFH单元获取一个字内容作为执行第一条指令的地址。

以L4_1.C的项目为例,请问实验中查看到该地址的值是多少?程序执行的第一条指令是什么指令?main函数的入口是单片机上电就被执行的第一条语句吗?说明:如图6-3,可在项目设置option/Debugger/set up中,去除对run to前的选项,再将程序下载到单片机中,观察当前上电复位PC的值与0xFFFE~0xFFFF存储单元内容的关系,对比不去除run to前的选项的不同。

指令系统和寻址方式1.ppt

指令系统和寻址方式1.ppt

由此看出,这种寻址方式不需要访问存储器而是立 即从指令中取得操作数。这正是立即寻址方式名称的 含义所在。 由于在这种寻址方式中操作数是指令的一部分,不 能修改,而一般情况下,指令所处理的数据都是在不
断变化的,比如本条指令的操作数是上一条指令的执
行结果。因此,这种寻址方式只能适用于操作数固定 的情况。例如,给某一寄存器赋初值或给某存储单元
IBM PC机允许在汇编指令中指定除DS寄存器以外的段
寄存器作为操作数的段地址,这就是段超越前缀。其 汇编格式为:
第2章
指令系统和寻址方式
段寄存器名:地址表达式 或 段寄存器名:[地址表达式]


段寄存器名:数字表达式
段寄存器名:[数字表达式]
第2章
指令系统和寻址方式
存储器
OP AX 00H 10H 代码段
作数的方式,统称为存储器寻址。下面分别予以介绍。
第2章
指令系统和寻址方式
1) 直接寻址 寻找的操作数的地址在指令中直接给出。这种寻址
方式在汇编格式中表示为
格式1 地址表达式 (或[地址表达式]) 格式2 [数字表达式]
第2章
指令系统和寻址方式
【例2-8】 假设TABLE是在数据段定义的一个字节
数组的首地址标号(变量名),其偏移地址为1000H,则 指令 MOV AL,TABLE 或 MOV AL,[TABLE]
第2章
指令系统和寻址方式
1. 立即寻址
在立即寻址方式中,寻找的操作数紧跟在指令操作 码之后。这种寻址方式在汇编语言格式中表示为 数字表达式 这个数字表达式的值可以是一个8位整数,也可以是
一个16位整数。
【例2-1】 MOV AX,267 其中,“267”就是数字表达式,也就是立即寻址方式。

寻址方式与基本指令实验

寻址方式与基本指令实验

寻址方式与基本指令实验班级:软件工程1102班姓名:水雪利学号: 04113068日期:2013年5月13日一、试验目的(1)熟悉80x86寻址方式及基本指令的功能。

(2)掌握汇编语言程序设计上机过程和汇编语言源程序结构,为后续汇编语言程序设计打好基础。

(3)熟悉Microsoft的DEBUG使用方法。

二、实验内容1、读懂下列源程序,使用EDIT生成名为EX11.ASM的源程序,汇编生成EX11.OBJ文件和EX11.LST文件,连接生成EX11.EXE文件;用EDIT打开EX11.LST文件,了解.LST文件包含的信息;使用DEBUG调试工具单步执行EX11.EXE程序,注意观察IP值的变化,并回答下列问题。

(1)程序装入后,代码段寄存器CS的内容为_0771____H,代码段第一条可执行指令MOV AX, DATA对应的机器代码为b87007___H,它是一个_3__字节指令,注意观察执行该指令时IP值的变化情况,该指令源操作数DATA的寻址方式是___立即数寻址___,其值为__0770h___。

(2)执行完MOV DS, DATA指令后,数据段寄存器DS的内容为_0770___H,源程序在数据段中定义的数据82H、68H和88H被装入的存储单元的物理地址分别为___07700__H、07701__H和____07702____H。

(3)程序中第一条ADD AL, [BX] 指令对应的机器代码为_____0207_____H,它是一个_2_字节指令,注意观察执行该指令时IP值的变化情况;该指令中源操作数的寻址方式为__直接寻址___,该操作数所在存储单元的逻辑地址(DS): (BX)为_0771:000b___,其物理地址为_0771b___H;执行完该指令后(AL)=____0001__H,CF=_0_____,OF_0_____,ZF___1___,SF__1____,AF 0______,PF_0_____;若两操作数为无符号数,计算结果是否正确___是____?若两操作数为带符号数,计算结果是否正确__是______?若计算结果正确,结果是正数还是负数__负____?(4)执行完第二条ADD AL, [BX] 指令后(AL)=_0002_____H,CF=__1____,OF_1_____,ZF__1____,SF_0_____,AF__1____,PF_1_____;若两操作数为无符号数,计算结果是否正确___是____?若两操作数为带符号数,计算结果是否正确___否_____?(5)指令MOV SUM, AL中目的操作数的寻址方式为__寄存器间接寻址__。

计组实验报告基础汇编语言程序设计实验

计组实验报告基础汇编语言程序设计实验

基础汇编语言程序设计实验【实验目的】1.了解教学计算机的指令格式、指令编码、选择的寻址方式和每一条指令的具体功能,为进一步学习运算器组成和控制器设计打好基础。

2.了解汇编语言的语句与机器语言的指令之间的对应关系,了解伪指令在汇编过程中的作用。

3.学习教学机监控程序的功能、监控命令的使用方法,体会软件系统在计算机组成中的地位和作用。

【实验内容】1.学习联机使用TH-UNION+教学实验系统和仿真终端软件PCEC.2.使用监控程序的R命令显示/修改寄存器内容、D命令显示存储器内容、E命令修改存储器内容。

3.使用A命令写一小段汇编程序,U命令反汇编刚输入的程序,用G命令连续运行该程序,用T、P命令单步运行并观察程序单步执行情况;【实验内容】1.用R命令查看寄存器内容或修改寄存器的内容1)在命令行提示符状态下输入:R↙;显示寄存器的内容注:寄存器的内容在运行程序或执行命令后会发生变化。

2)在命令行提示符状态下输入:R R0↙;修改寄存器R0的内容,被修改的寄存器与所赋值之间可以无空格,也可有一个或数个空格2.用D命令显示存储器内容在命令行提示符状态下输入:D 2000↙3. 用E命令修改存储器内容在命令行提示符状态下输入:E 2000↙4.用D命令显示这几个单元的内容D 2000↙可以看到这六个地址单元的内容变为0000 1111 2222 3333 4444 5555。

5. 用A命令键入一段汇编源程序,主要是向累加器送入数据和进行运算,执行程序并观察运行结果。

1)在命令行提示符状态下输入:A 2000↙;表示该程序从2000H(内存RAM区的起始地址)地址开始2)用U命令反汇编刚输入的程序在命令行提示符状态下输入:U 2000↙在相应的地址会得到输入的指令及其操作码3)用G命令运行前面键入的源程序G 2000↙4)用P或T命令,单步执行这段程序,观察指令执行结果在命令行提示符状态下输入:T 2000↙<12020:MVRD R2,00OA2022:MVRD R0,00302024:OUT 802025:DEC R22026:JRZ 202E2027:PUSH R02028:IN 812029:SHR R0202A:JRNC 2028202B:POP R0202C:INC R0202D:JR 2024202E:RET202F:↙<2(2100) MVRD R2,001AMVRD R0,0041(2104) OUT 80DEC R2JRZ 210EPUSH R0(2108)IN 81SHR R0JRNC 2108POP R0INC R0JR 2104(210E)RET【实验结果】<1屏幕上输出'0'到'9'十个数字符<2屏幕上显示“A”~“Z”26个英文字母【实验过程中遇到的问题以及解决办法】在验证例3的实验时,输入语句“JC 2053”,执行时系统一直提示有错误,无法进行运算查表得知语句中没有JC ,只有JRC,所以修改语句即可解决。

寻址方式和指令系统

寻址方式和指令系统
2.有符号乘指令IMUL
语句格式:IMUL OPS
功 能 : 字 节 乘 法 : ( AL)*(OPS)→AX, 字 乘 法 : (AX)*(OPS)→DX、AX。
IMUL指令除计算对象是带符号二进制数外,其他都与 MUL一样,但计算结果不同。 【例2.26】有符号数 0B4H与11H相乘。
MOV AL,0B4H ;(AL)=B4H
2.3.3 乘运算指令
1.无符号数乘法指令MUL 2.有符号乘指令IMUL
第2章 寻址方式和指令系统
1.无符号数乘法指令MUL
语句格式: MUL OPS
功能: 若是字节数据相乘,(AL)与OPS相乘得到字数据存入AX 中;若是字数据相乘,则(AX)与OPS相乘得到双字数据,高字存 入DX、低字存入AX中。
第2章 寻址方式和指令系统
5.往目的串中存数指令STOS 语句格式:① STOSB——往字节串中存数 ②(2)STOSW——往字串中存数 功能:将AL或AX中的数据送入DI所指的目的串中的字节 (或字)存储单元中。 即:① 字节操作:(AL)→[DI],字操作:(AX) →[DI]。 ② 修改指针DI,使之指向串中的下一个元素。 当DF=0时,(DI)增量)。当DF=1时,(DI)减量。
第2章 寻址方式和指令系统
1.简单条件转移指令
第2章 寻址方式和指令系统
第2章 寻址方式和指令系统
2.无符号数条件转移指令 表2.2 无符号数条件转移指令
第2章 寻址方式和指令系统
【例2.53】比较无符号数大小,将较大的数存放AX 寄存器。
CMP AX, BX ;(AX)-(BX)
JNB NEXT
优秀精品课件文档资料
第2章 寻址方式和指令系统
第2章 寻址方式和指令系统
  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。

相关文档
最新文档