实验3_编写、调试具有多个段的程序

上传人:飞*** 文档编号:40425149 上传时间:2018-05-26 格式:DOC 页数:5 大小:45KB
返回 下载 相关 举报
实验3_编写、调试具有多个段的程序_第1页
第1页 / 共5页
实验3_编写、调试具有多个段的程序_第2页
第2页 / 共5页
实验3_编写、调试具有多个段的程序_第3页
第3页 / 共5页
实验3_编写、调试具有多个段的程序_第4页
第4页 / 共5页
实验3_编写、调试具有多个段的程序_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《实验3_编写、调试具有多个段的程序》由会员分享,可在线阅读,更多相关《实验3_编写、调试具有多个段的程序(5页珍藏版)》请在金锄头文库上搜索。

1、实验 2 编写、调试具有多个段的程序【实验名称】 编写、调试具有多个段的程序 【实验目的】 1.学会汇编语言对多个段的程序编写及调试 2.掌握段地址的计算方法 【实验环境】 硬件环境:8086 PC 机 软件环境:Windows XP, masm 编译工具 【实验内容】 1. 编译、连接具有多个段的程序,用 debug 加载,跟踪,回答实验题后相关问题 2. 编写 code 段中的代码,将 a 段和 b 段中的数据依次相加,将结果存到 c 段中 3. 编写 code 段中的代码,用 push 指令将 a 段中的前 8 个字型数据,逆序存储到 b 段中 【实验步骤】 1. 将下面的程序连接,用

2、debug 加载,跟踪,然后回答问题assume cs:code,ds:data,ss:stack data segmentdw 0123h, 0456h, 0789h, 0abch, 0defh, 0fedh, 0cbah, 0987h date endsstack segmentdw 0,0,0,0,0,0,0,0 stack endscode segment start: mov ax, stackmov ss, axmov sp, 16mov ax, datamov ds, axpush ds:0push ds:2pop ds:2pop ds:0mov ax, 4c00hint 21h

3、 code ends end start(1) CPU 执行程序,程序返回前,data 段中的数据是多少? (2) CPU 执行程序,程序返回前,cs= 、ss= 、ds= 。 (3) 设程序加载后,code 段的段地址为 X,则 data 段的段地址为 ,stack 段的段 地址为 。 2. 将下面的程序编译连接,用 debug 加载,跟踪,然后回答问题assume cs:code, ds:data, ss:stackdata segmentdw 0123H, 0456H data endsstack segmentdw 0,0 stack endscode segment start: m

4、ov ax, stackmov ss, axmov sp, 16mov ax, datamov ds, axpush ds:0push ds:2pop ds:2pop ds:0mov ax, 4c00hint 21h code ends end start(1) CPU 执行程序,程序返回前,data 段中的数据是多少? (2) CPU 执行程序,程序返回前,cs= 、ss= 、ds= 。 (3) 设程序加载后,code 段的段地址为 X,则 data 段的段地址为 ,stack 段的段 地址为 。 (4) 对于如下定义的段:name segment name ends 如果段中的数据占 N

5、个字节,则程序加载后,该段实际占有的空间为 。3. 将下面的程序编译连接,用 debug 加载、跟踪,然后回答问题。assume cs:code, ds:data, ss:stack code segment start: mov ax, stackmov ss, axmov sp, 16mov ax, datamov ds,axpush ds:0push ds:2pop ds:2pop ds:0mov ax, 4c00hint 21h code endsdata segmentdw 0123h, 0456h data endsstack segment dw 0,0 stack endsen

6、d start(1) CPU 执行程序,程序返回前,data 段中的数据是多少? (2) CPU 执行程序,程序返回前,cs= 、ss= 、ds= 。 (3) 设程序加载后,code 段的段地址为 X,则 data 段的段地址为 ,stack 段的段 地址为 。4. 如果将(1)、(2)、(3)题中的最后一条伪指令”end start”改为”end” (也就是说, 不指明程序的入口) ,则哪个程序仍然可以正确执行?请说明原因。 5. 程序如下,编写 code 段中的代码,将 a 段和 b 段中的数据依次相加,将结果存到 c 段 中。assume cs:code a segmentdb 1,2,

7、3,4,5,6,7,8 a endsb segmentdb 1,2,3,4,5,6,7,8b endsc segmentdb 0,0,0,0,0,0,0,0 c endscode segment start: mov ax,amov ds,ax mov bx,0 mov cx,8 S: Mov al ds:bx Add al,ds:bx+16 Mov ds:bx+32,al Inc bx Loop s Mov ax,4c00h Int 21hcode ends end start 6. 程序如下,编写 code 段中的代码,用 push 指令将 a 段中的前 8 个字型数据,逆序存 储到 b 段中。assume cs:code a segmentdw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh a endsb segmentdw 0,0,0,0,0,0,0,0 b endscode segment start:mov ax,amov ds,axmov bx,0mov ax,bmov ss,ax mov sp,16 mov cx,8 S:Push bx Intc bx Intc bx Loop s Mov ax,4c00h Int 21h Code ends End start code ends end start

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号