9223刘霄

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

第二周实验

本周学习情况:

学习了X86 cpu的几个寄存器及X86汇编指令:
movl %eax,%edx edx=eax %表示一个寄存器,把eax内容放入edx,等号相当于把eax赋值给edx,寄存器寻址;
movl $0x123,%edx edx=0x123 立即数是以$开头的数值,把16进制的数值放入edx,立即寻址;
movl 0x123,%edx edx=(int32_t)0x123 内存地址16进制的123内存放入edx,把0x123强制转化成32-bit的指针,表示取它的值,直接寻址;
movl (%ebx),%edx edx=
(int32_t)ebx ebx这个寄存器存的值加个括号表示内存地址,所存储的数据放入edx,间接寻址;
movl 4(%ebx),%edx edx=
(int32_t*)(ebx+4) 除了在间接寻址的基础上先给ebx地址上加个立即数ebx+4,变址寻址。

先打开一个shell控制台,并可以下载在自己的电脑上;

把代码输入其中,并保存;

进行编译代码,按照题目要求命令编译成汇编代码;

打开main.s,删除点开头的内容,留下纯汇编代码;

步骤演示:

遇到的问题及解决方案

在进行输入代码时,不知道怎么从代码输入界面跳回原来的界面,记得上课老师讲过但是忘了,然后看了视频再加上自己百度,终于把问题解决了,代码输好后,要先按Esc,变成normal状态,然后按:wq,这样就能回到原来的界面。

posted on 2017-10-07 10:22  20179223刘霄  阅读(173)  评论(1编辑  收藏  举报