用机器指令和汇编指令编程(修改版)

  • 实验名称 用机器指令和汇编指令编程(1)
  • 实验日期   2018.10.22   
  • 学院:计软院   
  • 专业:计算机科学与技术 
  • 年级:2017级
  • 班次:5班 
  • 姓名:陈奕明   
  • 学号 20171308194


一、实验目的 
1. 掌握使用debug工具编写和调试汇编命令的方法

2. 掌握第1-2章所学的关于CPU、寄存器、内存的基础知识

3. 掌握第1-2章涉及的几条指令mov, add, sub, jmp的用法


二、实验准备 
1. 复习教材第1~2章内容,完成教材内相关检测点

2. 结合教材实验1 (P35)及公邮文件中心→实验下的 “实验1辅助文档.pdf”学习debug 工具用法。


三、实验内容 
1. 教材实验1(P35)

(1)练习教材 P35-45「预备知识:Debug 的使用」,学习 debug 启动、退出及常用指 令用法;

(2)在练习基础上,完成「2. 实验任务」 

Tips: 「2. 实验任务」中每一项任务都可以在教材前序内容或练习中找到提示线索。建议先 完成「二、实验准备」中要求的内容及实验内容的第(1)项,这样完成「2. 实验任务」时会 很容易完成。比如: 实验任务(1)可参照教材P41-43的(7)完成; 实验任务(2)与教材 P20的检测点(2)相似且相关;


四、实验结论 
任务一:

把如下的程序段写入内存,逐条执行,观察每条指令执行后CPU中相关寄存器中内容的变化。

首先使用e指令按题目要求的写入机器码指令(随便找了个地址1000:0):

到达文本输入限制后没办法,只能先执行了...执行完后,看一下已经写入数据的内存单元的情况...嗯...数据是对的

继续输入并执行,执行完全部代码后,使用u指令反汇编机器码命令:

跟书上写明的汇编命令相符。

然后输入汇编命令:

中间又把1和字母l分不清了,出了个error。。。

命令输入完毕,-t命令单步执行:

和上课听讲的一样,对指定的寄存器进行数据的改写操作。

后面的命令行有点多就用-t+数字=执行往后的几条命令全部执行了:

最后的结果:

任务二:将下面三条指令写入从2000:0开始的内存单元中,利用这3条指令计算2的8次方。

mov ax,1

add ax,ax

jmp 2000:0003

解题思路:2的三次方就是8,再看下题目给我们的三条命令。执行完第一条后ax的值为1,执行完第二条命令后ax的值为2,那么就需要我们再执行这条语句7次了,所以就要使用jmp命令,通过改变CS和IP寄存器的值来使得CPU继续反复执行这条命令,所以往下又写了七句jmp 2000:0003使得CPU再反复执行其次该语句,从而使得AX中的值变为二的八次方。。。。这是最终结果。

最终实验截图

第三题

PC主板上的ROM中写有一个生产日期,在内存FFF00H~FFFFFH的某几个单元中,请找到这个生产日期并且试图改变它。

实验截图如下:

试图修改但是失败了,看来是因为ROM的关系,无法修改。

第四题

向内存B8100H开始的单元中填写数据,如:

-e B810:0000 01 01 02 02 03 03 04 04

这是进行了一系列实验过后的结果:

有这么些结果和感悟:

再向寄存器写入数据时,每多两个字节的数据就会产生一个新的颜色区域,而且写入区域的CS码每产生一次进位,就会使得产生的色块区域产生换行,最终得到了这么些结果。


五、实验心得与感悟
这次实验主要实验了R命令(用于查看、修改寄存器中的内容)、D命令(查看内存中的内容)、E命令(修改内存中的内容)、U命令(反汇编命令)、T命令(执行代码行命令)

第四题经过这么多次的实验测试,看来这一段内存空间是显存。

我的电脑屏幕运行Dosbox窗口极小,最后查到按Alt+Enter可以进入全屏模式进行操作。

当初安装Dosbox时经历过,千万别把程序装在系统盘,否则会有权限问题。

暂时就这样把,肯定还有许多要学的,要完善的,好好学习汇编!!

                                                                                                                                                                                                                                                 2018-10-27  21:28:25于宿

转载于:https://www.cnblogs.com/cymwn-com/p/9867855.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/484862.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学术交流丨魏子卿院士:北斗坐标系

来源:微信公众号中国测绘学会引文格式:魏子卿, 吴富梅, 刘光明. 北斗坐标系[J]. 测绘学报,2019,48(7):805-809. DOI: 10.11947/j.AGCS.2019.20190131第一作者:魏子卿(中国工程院院士&#xff0c…

centos 安装MySQL报错You could try using --skip-broken to work around the problem You could try running:

centos 安装MySQL报错You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch.rpm yum …

​马斯克的全球上网计划:月费646元,网速可达200Mbps

SpaceX创始人兼首席执行官埃隆马斯克来源:腾讯科技审校作者:金鹿腾讯科技讯 4月16日消息,美国太空探索技术公司SpaceX在六个月前向公众推出了Starlink Early Access计划。在最初的几个月里,这项卫星互联网服务的用户增长到了1万多…

剑指 Offer 68 - II. (二叉树)二叉树的最近公共祖先

题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以…

从狼群智能到无人机群协同决策

来源:飞思实验室文:小翼生物群集行为是自然界存在的一种普遍现象 ,先前的研究已表明人们可以通过模仿鸟群、鱼群、蜂群等行为, 研究其群体性决策机制, 进而用于构建集群系统的决策系统框架. 狼群在认知、分工, 以及复杂环境适应性等方面具有突出的优势, …

华为自动驾驶实车实路测试视频曝光!

来源:量子位、物联网智库等自动驾驶的风又刮起来了,这次处在风暴中心的是华为。4月15日,消息称配备华为自动驾驶技术的北汽新能源极狐阿尔法S的HI版车型在上海进行了公开试乘,这也是华为自动驾驶技术公开试乘的全球首秀。就试乘效…

未来智能:人有人用,机有机用

来源: 苇草智酷作者:王飞跃当今最好的人工智能程序到底有多智能?它们是如何工作的?能做些什么?我们有必要担心机器比人类聪明且将很快夺取我们的工作吗?以上这些问题都颇受人们的关注,梅拉妮米歇…

因果作用推断、因果网络学习及其他

来源:久章智能 未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱…

通信人工智能的下一个十年(上)

来源:电信科学欧阳晔1, 王立磊1, 杨爱东1, 马利克萨哈2, 大卫贝兰格3,4, 高同庆5, 韦乐平6, 张亚勤71 亚信科技(中国)有限公司,北京 1001932 美国威瑞森电信公司,美国 纽约 100363 美国电话电报公司,美国 得…

大脑使用交叉存储,来区分现在和过去

来源:混沌巡洋舰在每一个清醒的时刻,人类和其他动物必须在我们对过去的记忆和对现在的意识两者中保持平衡。我们必须吸收关于周围世界的新的感官信息,同时保持对早期观察或事件的短期记忆。我们理解周围环境、学习、行动和思考的能力都依赖于…

对象在内存中的存储布局

对象头包含: markword(和锁相关的信息) 8字节 class pointer(说明对象属于哪个类),jvm指针八字节,但是默认压缩,所有4个字节 对象体包含: instance word实例数据(例如int,这就占四个字节,l…

用研究新范式破解生命科学难题

来源:中国科学报 作者:丛斌(中国工程院士)采访整理:张思玮(本报记者)当今,世界科技正处于重大变革前夕。各领域科学家们一直积极地探索物质本质、宇宙本源、生命本质,并迫…

synchronized与volatile

synchronized实现过程: 1.Java代码:synchronized 2.字节码层级:monitorenter,monitorexit 3.执行过程中自动升级(偏向->自旋->重量级锁) 4.cpu汇编层级:lock comxchg 上图为双核cpu的内部构造&am…

AI 技术与人类主体想象 ——基于人工直觉在线讨论的研究

来源: 人工智能哲学探索作者:雅克布约翰森(英国圣玛丽大学) 王鑫(辽宁大学)一、引言:AI、神经形态硬件、人工直觉AI 在媒体上的讨论越来越多,很多广为流行的专业网站上的相关探讨涵盖了 AI 发展的最新趋势和…

Java四种引用

强引用:没有使用时调用System.gc()会回收 eg:M m new M(); mnull;System.gc(); 软引用:内存不够时就回收 作用:一般使用在缓存时,比如把一些图片存储,内存不够时就自动回收 弱引用: 垃圾回…

永动机与热力学定律

来源:力学酒吧 撰文:张伟伟热力学三大定律分别为能量守恒、熵增定律和绝对零度无法到达,人们对热力学定律的认识也是纠正永动机思想的过程,是人类“美好思想”不断“碰壁”的过程,这些“碰壁”对于个人成长有着深刻的启…

浅析ThreadLocal

线程本地变量 每个线程独立拥有,线程存在,ThreadLocal就一直存在。 使用场景:spring 事务 里面有m方法,m调用了m1,m2,比如m1,m2都去访问数据库 如果分别建立两个数据库连接,事务…

工业机器人技术全解析,值得收藏!

来源:先进制造业一、工业机器人的发展背景1920年,捷克剧作家卡里洛奇别克在其科幻剧本《罗萨姆万能机器人制造公司》(Rossums Universal Robots)首次使用了ROBOT这个名词,之后便成为机器人的代名词。1938年3月&#xf…

JQuery 数组按指定长度分组

JQuery方法// 将data每3个一组进行分组var data [法国,澳大利亚,智利,新西兰,西班牙,加拿大,阿根廷,美国,0,国产,波多黎各,英国,比利时,德国,意大利,意大利,]; var result []; for(var i0,lendata.length;i<len;i3){result.push(data.slice(i,i3)); }lodash方法var data …

中科创星米磊:从五个方向筛选“硬科技”企业

来源&#xff1a;经济日报-中国经济网记者/梁 睿米磊建议创投和保荐机构从五个方面入手筛选“硬科技”企业&#xff1a;“围绕落实国家战略规划确定的科技发展方向或承担具体攻关任务的企业&#xff1b;拥有关键核心技术和先进技术的企业&#xff1b;科技创新和转化应用能力突出…