计科《汇编语言程序设计》 - 实验指导书(2)
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字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [高等教育]公司协助某村精准扶贫工作总结.doc
- [高等教育]高二生物知识点总结(全)
- [高等教育]苏教版数学三年级下册《解决问题的策略
- [高等教育]仪器分析课程学习心得
- [高等教育]2017年五邑大学数学与计算科学学院333
- [高等教育]人教版七年级下册语文第四单元测试题(
- [高等教育]2018年秋七年级英语上册Unit7Howmuchar
- [高等教育]2017年八年级下数学教学工作小结
- [高等教育]湖南省怀化市2019届高三统一模拟考试(
- [高等教育]四年级下册科学_基础训练及答案教材
- [高等教育]城郊煤矿西风井管路伸缩器更换施工安全
- [高等教育]昆八中20182019学年度上学期期末考试
- [高等教育]项目部各类人员任命书
- [高等教育]上市公司经营水务产业的模式
- [高等教育]人教版高二化学第一学期第三章水溶液中
- [高等教育]【中考物理第一轮复习资料】四.压强与
- [高等教育]金坑水电站报废改建工程机电设备更新改
- [高等教育]高中生物教学工作计划简易版
- [高等教育]2017年西华大学攀枝花学院(联合办学)44
- [高等教育]最新整理超短爆笑英文小笑话大全
- 优秀教师继续教育学习心得体会
- 阳历到阴历的转换
- 留守儿童教育案例分析
- 华师17春秋学期《玩教具制作与环境布置
- 测速传感器新型安装装置的现场应用
- 人教版小学数学三年级下册第四单元
- 创业个人意向书
- 山东省潍坊市2012年高考仿真试题(三)
- [恒心][好卷速递]四川省成都外国语学校
- 多少人错把好转反应当成了病情加重处理
- 中外广播电视史复习资料整理
- 江苏省扬州市江都区宜陵镇中学2014-201
- 工程造价专业毕业实习报告
- 广西师范学院心理与教育统计
- aympkrq基于 - asp的博客网站设计与开
- 建筑业外出经营相关流程操作(营改增后
- 人治 德治 法治
- [精华篇]常识判断专项训练题库
- 中国共产党为什么要实行民主集中
- 小学数学第三册第一单元试卷(A、B、C




