汇编
fengyunjh
研究嵌入式、软件开发、FPGA、视频编解码(曾经)。
在这里记录下自己学习的点滴,完成艰难的学习任务,
欢迎来讨论。
展开
-
汇编入门学习----第一天(2)【原创】
视频4: 主要内容:讲栈和与栈相关的两个寄存器。 栈是先入后出。 上节课讲到,程序在内存中有堆栈段,存放的是函数的局部变量,数据段存放全局变量。 我们知道代码段和数据段可以通过cs和ds找到。 ss×16+sp cpu规定上述公式指向的物理地址永远都是栈顶位置。 ax=1234h注意,12在栈顶。 还要注意,原来栈顶指向ffee,入栈后栈顶指向ffeb 内存中三个段如上图分布。 如果栈满再入栈,那就把数据段的内容覆盖了。 栈空出栈同样危原创 2011-02-15 15:52:00 · 449 阅读 · 0 评论 -
汇编入门学习----第一天
三天的时间学习下汇编吧,能学多少是多少。态度上会全身心投入三天的时间。 以前看视频总爱记笔记,后来发现记完笔记以后根本不看,这次看快点,不记笔记了,只记最重要的。 视频是从IT播吧下的。 开始喽! 写几个重要的知识点。 视频3: cs:代码段寄存器 code segment IP:指令指针寄存器。instruct pointer cs*16+IP就是实际物理地址,和上图的公式对应起来。 cpu就是这样找到代码的。为什么是cs和IP?cpu就是这样设计的,cs*16+IP原创 2011-02-15 13:52:00 · 637 阅读 · 0 评论 -
汇编入门学习----第一天(3)【原创】
视频5 实例:打印hello world 想要打印出hello world,必须了解显存的概念。 实现例子的几个问题: 这是c的程序 所以:首先要在数据段定义msg这个全局变量。打印的汇编代码放在代码段。 定义了连个段,cs和ds别名分别是code和data 完成的框架如下: db:define byte。 db就相当于c语言中定义变量的类型说明符 定义变量的问题解决了。 如何打印msg呢?首先:原创 2011-02-15 17:01:00 · 504 阅读 · 0 评论 -
debug常用命令--只总结最常用的,简单明了【原创】
不止能查看寄存器的,还能直接看内存的内容。 d查看cs和ip标示的内存地址的内存里的内容。 要查看指定地址的内存内容 以ss做基地址,0000做偏移地址 用D命令看的是16进制,看不懂啊,不能人工翻译成汇编啊。怎么办呢? 用U命令。 比如我们想看看cpu要执行的第一个汇编指令是什么呢,怎么看?(这个得会) 那如何修改内存中的内容呢? t命令 输入一个t执行一个汇编指令: 每个指令占用的字节数不一样,例如上图的mo原创 2011-02-15 13:40:00 · 1059 阅读 · 0 评论