实验任务

(1)

(2)

(3)

(4)

若将最后一条指令”end start“改为”end“,(3)中的程序仍然可以正常执行。

原因:如果不指明程序的入口,程序的cs:ip值没有被设置为指向该入口,就会以程序段的第一条指令为默认入口了,然后程序会在end处结束,无法运行到代码段。

(5)

①实验代码

assume cs:code
a segment
  db 1,2,3,4,5,6,7,8
a ends
b segment
  db 1,2,3,4,5,6,7,8
b ends
c1 segment   ; 在集成软件环境中,请将此处的段名称由c→改为c1或其它名称
  db 8 dup(0)
c1 ends     ; 改的时候要成对一起修改
code segment
start:
mov ax,c1
mov es,ax
mov bx,0
mov cx,8
s: 
mov ax,a
mov ds,ax
mov dl,[bx]
mov es:[bx],dl
mov ax,b
mov ds,ax
mov dl,[bx]
add es:[bx],dl
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end start

②在实现数据相加前,逻辑段c的8个字节

③ 执行完实现加运算的代码后,逻辑段c的8个字节

④验证是否完成正确的数据相加

c1中数据符合a的数据与b的数据加和。

(6)

①程序代码

assume cs:code
a segment
  dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh
a ends
b segment
  dw 8 dup(0)
b ends
code segment
start:
mov ax,a
mov ds,ax
mov ax,b
mov ss,ax
mov cx,8h
mov bx,0
mov sp,10h
s:
push[bx]
add bx,2
loop s
mov ax,4c00h
int 21h
code ends
end start
②查看逻辑段b的8个字单元信息截图
③执行 push操作,然后再次查看逻辑段b的8个子单元信息

④:对比②和③

经验证,已成功实现逆序存储。
总结与体会
通过本次实验,我掌握了如何来编写、调试具有多个段的一个程序,
具有多个段的程序相对于仅具有一个段的程序而言,能把数据,代码和栈段分开存储,不仅提高了程序整体的存储容量,还使程序显得井然有条,通过对多个段的定义,使我们对数据的操作更方便清晰了。 
大致清楚了为具有多个段的一个程序分配储存空间的方式,以16个字节为倍数,将其连续地分配在一个储存空间中。

转载于:https://www.cnblogs.com/xihongqing/p/10017194.html

实验 5 编写、调试具有多个段的相关推荐

  1. 实验5 编写调试有多个段的程序

    实验1 assume cs:code,ds:data,ss:stackdata segmentdw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h da ...

  2. 基于普中科技的单片机开发实验仪编写的数字表

    基于普中科技的单片机开发实验仪编写的数字表 1.项目简单说明 一.显示日期,对ds1302芯片进行计时所得的日期用数码管进行显示: 二.显示温度,对18B20芯片测量所得的温度用数码管进行显示: 三. ...

  3. c语言简单程序编写实验步骤,实验一编写简单的C语言程序.doc

    实验一编写简单的C语言程序 实验一 编写简单的C语言程序 [实验目的] 1.熟悉C程序设计编程环境 C ++,掌握C程序设计编辑.编译.连接运行.掌握C程序设计的基本框架能够编写简单C程序.. 实验内 ...

  4. ARM(IMX6U)裸机汇编LED驱动实验——驱动编写、编译链接起始地址、烧写bin文件到SD卡中并运行

    参考:Linux之ARM(IMX6U)裸机汇编LED驱动实验–驱动编写 作者:一只青木呀 发布时间: 2020-08-07 09:13:48 网址:https://blog.csdn.net/weix ...

  5. 汇编语言(王爽)实验十 编写子程序

    标 题: 汇编实验10-- 编写子程序 作 者: XHS_12302 时 间: 2016_7_28 16:56 实验10编写子程序 在这次实验中,我们将要编写3个子程序,通过它们来认识几个常见的问题和 ...

  6. 【微机原理与接口技术学习实践】汇编语言程序设计初步——debug编写调试指令序列

    halo~我是bay_Tong桐小白 本文内容是桐小白个人对所学知识进行的总结和分享,知识点会不定期进行编辑更新和完善,了解最近更新内容可参看更新日志,欢迎各位大神留言.指点 [微机原理与接口技术学习 ...

  7. linux编写多进程程序实验,实验7 编写多进程程序

    实验七编写多进程程序 学生姓名:李亚军学号:6100412196 专业班级:卓越计科121班 1.实验目的 通过编写多进程程序,使读者熟练掌握fork().exec().wait()和waitpid( ...

  8. HelloWorld程序编写调试及错误解决

    HelloWorld程序编写调试及错误解决 eclipse软件编写 相较于windows内置记事本,eclipse编写程序更为简单快捷.由其生成的程序模板编写如下: package helloworl ...

  9. MPC5748g基于源码实现ENET-PING实验(编译+调试)

    MPC5748g基于源码实现ENET-PING实验(编译+调试) 介绍:在不使用S32ds的sdk的情况下,基于MPC5748G的bsp板级支持包,使用ucos iii系统完成工程的创建: 1. 完成 ...

最新文章

  1. 使用masonry布局旋转View的问题
  2. dell r220服务器配置oracle linux 阵列卡,如何在Dell服务器PERC5/6阵列卡配置RAID
  3. 802.11协议中的action帧的使用
  4. 「日常训练」Alternative Thinking(Codeforces Round #334 Div.2 C)
  5. N秒钟后自动跳转的html页面,javascript
  6. ROS总结一,catkin,package,CMakeList,Topic,node
  7. QAction添加事件响应
  8. 每日一题:leetcode989.数组形式的整数加法
  9. hystrix文档翻译之metrics
  10. Python实现微信自动抠图换底助手
  11. 线性代数知识点整理(自用)
  12. 《即兴演讲》学习总结
  13. python在文本添加超链接_在Markdown中快速插入超链接的Workflow
  14. lambda函数(配合map函数)以及[x for x in]的超详细解释(实例+原理)
  15. 黑苹果音频卡顿_DXOMARK公布无线音箱音质基准:苹果华为Sonos上榜
  16. Day10【LeetCode每日一题】781. 森林中的兔子
  17. 使用fisheye4.8(crucible4.8)添加仓库时出现的问题
  18. 计算机应用技术题,计算机应用技术复习题.doc
  19. 我的言论05-04-06
  20. python函数返回值可以有多个吗_Python函数中如何返回多个值?(代码示例)

热门文章

  1. Python 线程条件变量 Condition - Python零基础入门教程
  2. java怎么用doss窗口_GitHub - doss128/symphony: 一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)平台。...
  3. java的excel导出_java 实现excel 导出功能
  4. linux apache 跨域,解决nginx/apache静态资源跨域访问问题详解
  5. python爬取新闻网站内容findall函数爬取_Python爬取新闻网标题、日期、点击量
  6. php 添加inotify扩展,php inotify 扩展的安装
  7. matplotlib 设置标注方向_Python 使用matplotlib画图添加标注、及移动坐标轴位置
  8. golang 读取文件最后一行_python3从零学习-5.4.3、文件输入流fileinput
  9. java 动态生成getset_通过get、set方法,动态生成对象
  10. 萧县机器人_全国总决赛第一名!萧县杨楼的这位学生厉害了