摘要: 源程序 源程序 1. 伪指令:由编译器来执行,编译器根据伪指令来进行相关的编译工作;没有对应的机器指令,最终不被CPU执行 (1)段名 segment 段名 ends segment和ends是一对成对使用的伪指令,它们定义了一个段。一个汇编程序由多个段组成的,这些段用来存放代码、数据或当作栈空间来 阅读全文
posted @ 2018-11-21 19:03 Cyiii 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 实验内容: 任务1:综合使用 loop,[bx],编写完整汇编程序,实现向内存 b800:07b8 开始的连续 16 个 字单元重复填充字数据0403H 任务1:综合使用 loop,[bx],编写完整汇编程序,实现向内存 b800:07b8 开始的连续 16 个 字单元重复填充字数据0403H (1 阅读全文
posted @ 2018-11-14 21:14 Cyiii 阅读(3916) 评论(0) 推荐(0) 编辑
摘要: 实验内容: 练习1:编写第一个源程序,学会编程,编译,连接,跟踪 练习1:编写第一个源程序,学会编程,编译,连接,跟踪 (1)首先在文本文档里面编写源程序: (2)然后在dosbox下进行编译,连接,执行 可以看到输出结果为36 (3)将源程序的line4和line9的值进行修改,源程序修改如下: 阅读全文
posted @ 2018-11-14 19:57 Cyiii 阅读(1589) 评论(0) 推荐(2) 编辑
摘要: 在csapp中的新理解: (1)栈向下增长,栈顶元素的地址是所有栈中元素地址中最低的 (2)因为栈和程序代码以及其他形式的程序数据都是放在同一内存中,所以程序可以用标准内存寻址方法访问栈内的任意位置 (3)加载有效地址(load effective address)指令leap实际上是movq指令的 阅读全文
posted @ 2018-11-01 21:09 Cyiii 阅读(1093) 评论(1) 推荐(0) 编辑
摘要: 实验前的一些总结: 关于d命令 (1)我们可以用“d 段地址:偏移地址”的格式查看制定内存单元的内容; (2)在处理d命令时,Debug有将段地址送入段寄存器ds的代码,CPU在访问内存单元时就可以从ds中得到段地址; (3)一些例子: 在e,a,u命令中使用段寄存器 (1)一些例子: 初步认识中断 阅读全文
posted @ 2018-10-25 21:39 Cyiii 阅读(2684) 评论(4) 推荐(0) 编辑
摘要: 实验之前的一些总结: 命令r——查看,修改寄存器的内容 -r (查看所有寄存器的内容) -r ax (查看或修改某一个寄存器的内容) 命令d——查看内存中的内容 -d (从当前的ds和ip所指向的地址开始,连续查看128个字节的内容) -d 0:200 (从给定的地址开始连续查看128个字节的内容) 阅读全文
posted @ 2018-10-24 20:22 Cyiii 阅读(743) 评论(3) 推荐(0) 编辑
摘要: 在csapp中增添的新理解: 1.在整个编译的过程中,编译器会完成大部分的工作,将把C语言提供的相对比较抽象的执行模型表示的程序转化成处理器执行的非常基本的指令。 2.对C程序员隐藏的处理状态: 程序计数器(PC,在x86-84中用%rip表示)给出将要执行的下一条指令在内存中的地址 整数寄存器文件 阅读全文
posted @ 2018-10-13 19:40 Cyiii 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 1.1机器语言 机器语言就是机器指令的集合。 1.2汇编语言的产生 汇编语言的主体是汇编指令——是机器指令便于记忆的书写格式。 1.3汇编语言的组成: (1)汇编指令:机器码的助记符,有对应的机器码; (2)伪指令:没有对应的机器码,由编译器执行,计算机并不执行; (3)其他符号:如+、-、*、/等 阅读全文
posted @ 2018-10-06 20:48 Cyiii 阅读(213) 评论(0) 推荐(0) 编辑