博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
汇编实验四
阅读量:4963 次
发布时间:2019-06-12

本文共 789 字,大约阅读时间需要 2 分钟。

实验结论

实验任务一

(1) 新建t3.asm编写代码

 

(2) t3编译,连接并运行

 

屏幕中出现了一连串红色的心型字符,这是因为我们在往属于显存的内存中写入了0403h的数据

(3) 将填入的数据从0403h改为0441h后再次编译运行

     

      输出的字符变成了红色的大写A字母

实验任务

1新建t4.asm编写代码
    

(2)编译,连接,使用debug单步调试后查看0:200~0:23f内存中的内容

 

0:200~0:23f内存中的内容确实为0~63

实验任务

(1)新建t5.asm,补全书上代码写入

 

说明:

第一个为mov ax,cx  因为复制代码,所以开始的段地址为cs中的代码段地址

第二个为MOV CX,23  CX中应该为循环次数,循环次数由总命令的长度决定,可以通过debug先查看这段代码的长度后进行修改,也可以直接计算得,规则在最后的总结体会。

(2)使用dubug查看0:200~0:215的内存

 

代码复制成功

我在自己更改cx中值后发现,即使循环次数更大,程序也不会继续复制下去了,mov ax,4c00int 21h代表程序运行结束,不复制

实验总结与体会

代码指令的长度规则:

一、没有操作数的指令,指令长度为1个字节

二、操作数只涉及寄存器的的指令,指令长度为2个字节

    如:mov bx,ax

三、操作数涉及内存地址的指令,指令长度为3个字节

    如:mov ax,ds:[bx+si+idata]

四、操作数涉及立即数的指令,指令长度为:寄存器类型+1

    8位寄存器,寄存器类型=1,如:mov al,8;指令长度为2个字节

16位寄存器,寄存器类型=2,如:mov ax,8;指令长度为3个字节

我们可以通过[bx]来完成对连续地址的改变

 

 

转载于:https://www.cnblogs.com/makise-kurisu/p/9948196.html

你可能感兴趣的文章
poj3061
查看>>
linux--多进程进行文件拷贝
查看>>
笔记:git基本操作
查看>>
Gold Smith第一章
查看>>
生成php所需要的APNS Service pem证书的步骤
查看>>
JavaWeb之JSON
查看>>
URL中的特殊字符处理
查看>>
HOT SUMMER 每天都是不一样,积极的去感受生活 C#关闭IE相应的窗口 .
查看>>
windows平台上编译mongdb-cxx-driver
查看>>
optionMenu-普通菜单使用
查看>>
MVC3分页传2参
查看>>
2016-2017-2点集拓扑作业[本科生上课时]讲解视频
查看>>
appium(13)- server config
查看>>
IIS负载均衡-Application Request Route详解第六篇:使用失败请求跟踪规则来诊断ARR...
查看>>
管理信息系统 第三部分 作业
查看>>
[Leetcode Week13]Search a 2D Matrix
查看>>
查看端口占用cmd命令
查看>>
2019.01.17王苛震作业
查看>>
Halcon学习(八)文本操作
查看>>
清除浮动
查看>>