版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数学与软件科学学院 实验报告学期:2017至 2018第 2 学期 2018年4月4日 课程名称: 汇编语言 专业:信息与计算科学 班级: 2015级_5班实验编号:4实验项目: 编写、调试具有多个段的程序指导教师:冉茂华姓名:黄玉含 学号:2015060512 实验成绩:1、 将下面的程序编译、连接,用Debug加载、跟踪,然后回答问题。assume cs: code, ds:data, ss:stackdata segment dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987hdata endsstack segment dw 0,0,0,
2、0,0,0,0,0stack endscode segmentstart: mov ax,stack mov ss,ax mov sp,16 mov ax,data mov ds,ax push ds:0 push ds:2 pop ds:2 pop ds:0 mov ax,4c00h int 21hcode endsend start执行结果如下:说明了cs=_076c_,ss=_076b_,ds=_076a_ (1)、CPU执行程序,程序返回前,data段中的数据是多少? 还未执行时的数据:执行程序后的数据:不变,因为程序加载进去段内容就已经固定。(2) 、CPU执行程序,程序返回前,cs
3、=_076c_,ss=_076b_,ds=_076a_。(3) 、设程序加载后,code段的段地址为X,则data段的段地址为_X-2_,stack段的段地址为_x-1_。分析:程序段的段地址总是16的倍数且程序在内存中顺序加载。2、 将下面的程序编译、连接,用Debug加载、跟踪,然后回答问题。assume cs: code, ds:data, ss:stackdata segment dw 0123h,0456hdata endsstack segment dw 0,0stack endscode segmentstart: mov ax,stack mov ss,ax mov sp,16
4、 mov ax,data mov ds,ax push ds:0 push ds:2 pop ds:2 pop ds:0 mov ax,4c00h int 21hcode endsend start(1)、CPU执行程序,程序返回前,data段中的数据是多少? 返回前的data段中内容为0123h,0456h,说明在编译链接时data段已经加载进内存。(2)、CPU执行程序,程序返回前,cs=_076c_,ss=_076B_,ds=_076a_。(3)、设程序加载后,code段的段地址为X,则data段的段地址为_x-2_,stack段的段地址为_x-1_。(4)、对于如下定义的段:name
5、segment .name ends如果段中的数据占N个字节,则程序加载后,该段实际占有的空间为(N-1)/16+1)*16。分析:段在程序加载后实际占据的空间以16为单位。3、 将下面的程序编译、连接,用Debug加载、跟踪,然后回答问题。assume cs: code, ds:data, ss:stackcode segmentstart: mov ax,stack mov ss,ax mov sp,16 mov ax,data mov ds,ax push ds:0 push ds:2 pop ds:2 pop ds:0 mov ax,4c00h int 21hcode endsdata
6、 segment dw 0123h,0456hdata endsstack segment dw 0,0stack endsend start(1)、CPU执行程序,程序返回前,data段中的数据是多少? 01 23 04 56(2)、CPU执行程序,程序返回前,cs=_076a_,ss=_076e_,ds=_076d_。(3)、设程序加载后,code段的段地址为X,则data段的段地址为_x+3_,stack段的段地址为_x+4_。分析:程序按顺序执行。4、 如果将1、2、3题中的的最后一条伪指令“end start”改为“end”,则哪个程序仍然可以正确的执行?请说明原因。答:第3题的程序
7、,因为程序顺序执行。分析:如果不指名start入口地址,并且使用end替换end start,程序仍可以执行。因为如果不指名入口,程序则从加载进内存的第一个单元起开始执行,但因为程序中有部分是作为数据使用的,如果不指名入口,cpu会将数据当作汇编指令执行,所以一般要指明入口地址。5、 程序如下,编写code段中的代码,将a段和b段中的数据依次相加,将结果存在c段中。assume cs: codea segment db 1,2,3,4,5,6,7,8a endsb segment db 1,2,3,4,5,6,7,8b endsc segment db 0,0,0,0,0,0,0,0c end
8、scode segmentstart: ?code endsend start答:代码如下:assume cs: codea segment db 1,2,3,4,5,6,7,8a endsb segment db 1,2,3,4,5,6,7,8b endsc segment db 0,0,0,0,0,0,0,0c endscode segmentstart: mov ax,c mov ds,ax mov cx,8 mov bx,0 mov ax,a mov es,ax mov ax,b mov ss,ax s: mov al,es:bx add al,ss:bx mov bx,al inc
9、bx loop s mov ax,4c00h int 21hcode endsend start6、 编写code段中的代码,用push指令将a段中的前8个字型数据逆序存放到b段中。assume cs: codea segment dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffha endsb segment dw 0,0,0,0,0,0,0,0b endscode segmentstart: ?code endsend start代码如下:assume cs: codea segment dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffha endsb segment dw 0,0,0,0,0,0,0,0b endscode
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 八年级数学下册第17章勾股定理1711知识清单
- 初中八年级道德与法治《做守法的公民》单元教案
- 初中八年级历史与社会“开眼看世界”与近代中国转型的挫折深度探究教案
- 2025-2026学年语文园地七教学设计二上
- 八年级上册地理《经纬时空·山水中国》单元整合复习教学设计
- 本科临床医学专业《腕管综合征解剖学基础》教学设计
- 北京版二年级下册《时间的奥秘:时、分、秒》教学设计
- 【小学一年级数学下册】100以内数的组成·核心知识清单
- 本科一年级财务管理:核心理论体系建构与动态分析导学案
- 《极地与未来-七年级地理“极地地区”大单元跨学科主题教学方案》
- 财务大数据分析与可视化课件 项目4 数据获取
- 生物安全委员会活动程序
- 跨文化沟通心理学智慧树知到期末考试答案2024年
- GB/T 28210-2024热敏纸
- 2024年内蒙古鄂尔多斯市商务局引进高层次人才2人历年高频考题难、易错点模拟试题(共500题)附带答案详解
- JC T 885-2016建筑用防霉密封胶
- 达必妥药品说明书
- NB-T 10991-2022 风力发电机组 塔架升降机
- 四年级数学下册第四单元《小数的意义和性质》课件
- HG-T 3830-2022 预涂卷材涂料
- DBJ-T 13-413-2022 可调式防沉降检查井盖应用技术标准
评论
0/150
提交评论