教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 高等教育 >

计科《汇编语言程序设计》 - 实验指导书(2)

来源:网络收集 时间:2026-09-07
导读: mov es,ax mov cx, count mov bx, offset string mov di, 0 Next: mov dl, [bx] bx di ah,4ch 21h mov new_string[di], dl inc inc mov int main endp code ends end start loop Next 实验二 寻址方式(一):操作

mov es,ax

mov cx, count

mov bx, offset string mov di, 0 Next:

mov dl, [bx]

bx di ah,4ch 21h

mov new_string[di], dl inc

inc

mov

int

main endp code ends end start

loop Next

实验二 寻址方式(一):操作数寻址

实验目的

1. 掌握操作数的不同寻址方式; 2. 继续熟悉DEBUG调试程序。

预习与实验要求

1.复习教材的有关内容,回顾汇编语言程序中对操作数的7种寻址方式,回顾8086的实模式寻址;

2.回顾汇编程序上机过程以及debug常用指令; 3.回顾汇编程序的基本结构;

4.实验前认真听讲,服从安排。尽可能独立思考并完成实验。

实验设备与器材

微型计算机,Windows操作系统,DOS操作系统,MASM或TASM编译器,LINK或TLINK

连接器。

实验原理

计算机中的指令由操作码字段和操作数字段两部分组成,8086中与数据有关的寻址方

式一共有7种,用来确定操作数地址从而找到操作数。

1. 立即寻址方式操作数直接存放在指令中,紧跟在操作码之后,它作为指令的一部分存放

在代码段里;

2. 寄存器寻址方式使用寄存器来存放要处理的操作数;

3. 其它5种寻址方式:直接寻址方式、寄存器间接方式、寄存器相对寻址方式、基址变址

寻址方式、相对基址变址寻址方式,操作数都在除代码段以外的存储区中, 在8086里,把操作数的偏移地址称为有效地址EA,这五种寻址方式分别对应五种计算EA的方法。 4. 有效地址可以由以下三种成分组成:

位移量(Displacement)是存放在指令中的一个8位或16位数,但它不是立即数,而是一个地址。

基址(Base)是存放在基址寄存器(BX或BP)中的内容。它是有效地址中的基址部分,通常用来指向数据段中数组或字符串的首地址。

变址(Index)是存放在变址寄存器(SI或DI)中的内容。它通常用来访问数组中的某个元素或字符串中的某个字符。

这三种成分都可正可负,以保证指针移动的灵活性。它们任意组合使用,可得到不同的寻址方式。

5.伪操作DB、DW、DD分别用来定义字节、字和双字变量。

实验内容

1. 使用多种寻址方式读写内存变量。 (1)定义字节变量,字变量,双字变量; (2)使用直接寻址方式访问这些变量; (3)采用寄存器间接寻址访问这些变量; (4)采用寄存器相对寻址访问这些变量; (5)采用基址变址寻址方式访问这些变量。

2.定义字节变量,字变量,双字变量使用伪操作DB、DW、DD,示例: data segment ;数据段定义

data_db data_dw data_dd

DB DW DD

11h,22h,?a?,?b? 1000h,2000h,3h,?ab? 1,2,12345678h,9ah

data ends

实验报告

1. 根据实验要求,设计程序,在源程序中用(1)、(2)、(3)……进行标注,并在指

令后面注明所使用的寻址方式;

2. 用Debug调试程序,写明程序运行情况。可参考如下格式:

当程序运行到(1)处时,**寄存器的内容为****,把**变量读取到寄存器中;运行到(2)处时,**寄存器的内容为**

3.比较各种寻址方式,总结自己的实验心得。

思考题

1. 在使用存储器寻址方式的时候,可以使用哪些寄存器?

2. 字节变量,字变量,双字变量在内存中的实际存储是怎样的?对它们的访问有什么

不同?

3. 比较直接寻址方式、寄存器间接方式、寄存器相对寻址方式、基址变址寻址方式有

什么不同。

附:示例程序eg02.asm

data segment

x db 11h,22h,'a','b' y dw 1000h,2000h,3h,'ab' z dd 1,2,12345678h,9ah data ends

code segment

assume cs:code,ds:data begin: mov ax,data mov ds,ax mov dx,y ;(1) mov bx,offset x mov ah,[bx] ;(2) lea si,y mov cx,[si+2] ;(3) mov bx,offset z

mov si,8 ;(4)

mov ax,[bx][si] ;(5)

mov dx,[bx+si+2];(6) mov ax,dx ;(7)

mov ah,4ch int 21h code ends end begin

实验三 寻址方式(二):转移地址寻址

实验目的

1. 转移地址的4种寻址方式;

2. 了解汇编程序中指令跳转是如何实现的。

预习与实验要求

1.复习教材的有关内容,回顾汇编语言程序中对转移地址的4种寻址方式; 2.回顾汇编程序上机过程以及debug常用指令; 3.回顾汇编程序的基本结构;

4.实验前认真听讲,服从安排。尽可能独立思考并完成实验。

实验设备与器材

微型计算机,Windows操作系统,DOS操作系统,MASM或TASM编译器,LINK或TLINK

连接器。

实验原理

与转移地址有关的寻址方式最终确定一条指令的地址。

1. 顺序执行的指令地址是由指令指针寄存器IP自动增量形成的,而程序转移的地址必须

由转移类指令和CALL指令指出,表示转向地址的寻址方式包括:段内直接寻址、段内间接寻址、段间直接寻址、段间间接寻址; 2. 本实验以JMP指令来实现程序的转移;

3. 与转移地址相关的有三个表示转移距离(称为位移量)的操作符:SHORT、NEAR、FAR

a) SHORT,短转移,表示位移量在-128~127字节之间。

b) NEAR,近转移,表示在同一段内转移,位移量在-32768~32767字节范围内。 c) FAR,远转移,表示转移距离超过±32K字节,在不同段之间转移。

4. CS:IP寄存器总是指向下一条将要执行的指令的首地址(称为IP当前值),当转移指令

执行后,必须修改IP或CS、IP的值。

a) SHORT转移和NEAR转移,位移量分别用8位和16位表示,程序控制仍然在当前代

码段,所以只修改IP的值,CS的值不变。

b) FAR转移,程序控制超出了当前代码段,所以CS和IP都必须修改为新的值。 5. 与转移地址有关的4种寻址方式就是告诉CPU如何修改CS和IP的值,以达到控制程序

转移的目的。

实验内容

1. 定义两个代码段;

code1 segment ; 定义代码段1

assume cs:code1

;……

code1 ends

code2 segment ; 定义代码段2

assume cs:code2

;……

code2

ends

2. 加入段内短转移指令;

JMP SHORT NEXT

3. 加入段内近转移指令:直接和间接转移;

段内直接近转移:JMP NEAR PTR NEXT 段内间接近转移:JMP TABLE [ BX ] 4. 加入段间远转移指令:直接和间接转移。

段间直接远转移:JMP FAR PTR NEXT 段间间接远转移:JMP DWORD PTR [ BX ]

实验报告

1. 根据实验要求,设计程序,在源程序中用(1)、(2)、(3 …… 此处隐藏:1565字,全部文档内容请下载后查看。喜欢就下载吧 ……

计科《汇编语言程序设计》 - 实验指导书(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/613370.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)