汇编语言and C语言
2015_thinker
这个作者很懒,什么都没留下…
展开
-
内存地址空间
最终运行程序的是CPU,我们用汇编语言编程的时候,必须要从CPU的角度来看问题。对CPU来讲,系统中的所有存储器中的存储单元多处于一个统一的逻存储器中,它的容量受CPU寻址能力的限制。这个逻辑存储器是我们所说的内存地址空间.原创 2015-03-30 13:02:30 · 312 阅读 · 0 评论 -
1.1-1.10 小结
汇编指令是机器指令的助记符,同机器指令 一 一 对应。每一种CPU多有自己的汇编指令集CPU 可以直接使用的信息在存储器中存放在存储器中的指令和数据没有如何区别,多是二进制信息存储单元从零开始顺序编号一个存储单元可以存储8个bit, 即8位二进制数.1Byte=8bit 1KB=1024B 1MB=1024KB 1GB=1024MB每个CPU芯片有很多管脚,这些管脚和总线相连,也可以说原创 2015-03-30 12:56:29 · 355 阅读 · 0 评论 -
寄存器
一个典型的CPU有运算器,控制器,寄存器等器件组成,这些器件靠内部总线相连,上次讲的总线相对于cpu来说是外部总线,内部总线实现CPU内部各个器件之间的联系,外部总线实现CPU和主板上其他器件的联系。简单的来说,在CPU中:运算器进行信息处理寄存器进行信息存储控制器控制各种器件进行工作内部总线连接各种器件,在他们之间进行数据的传送。对与一个汇编程序员来说,CPU中的主要部件是寄存器,寄存器原创 2015-03-30 13:16:41 · 273 阅读 · 0 评论 -
字在寄存器中存储
AX 等寄存器 可以分为 ah(高位字节:8位),al(低位字节: 8位)例如有这样的汇编代码: add al,93H 注意,此时是作为一个独立的8位寄存器来使用,和ah没有关系,CPU在执行这条指令时认为 ah 和 al 是两个不相干的寄存器。 在写程序的时候,在进行数据传送或运算时,要注意指令的两个操作对象的位数应当是一致的。例如: mov ax,bl mov原创 2015-03-30 14:12:55 · 825 阅读 · 0 评论 -
查看CPU和内存,用机器指令和汇编指令编程
1,预备知识: 什么是Debug ? debug 是 Dos, Windows 多提供的实模式(8086方式)程序的调试工具.使用它,可以查看cpu各种寄存器中的内容,内存的情况和在机器码级跟踪程序的运行.如何进入debug?在运行里面输入command命令,就进入了windows中虚以8086模式的DOS。debug的基本命令: 1.用debug的R命令查看,改变CPU寄存器的内原创 2015-04-07 17:21:37 · 994 阅读 · 0 评论 -
段的综述
我们可以将一段内存定义为一个段,用一个段地址指示段,用偏移地址访问段内的单元 这完全是我们自己的安排。我们可以用一个段存放数据,将它定义为 “数据段” 我们可以用一个段存放代码,将它定义为 “代码段” 我们可以用一个段存当作栈,将它定义为 “栈段”我们可以这样安排,但若要让CPU按照我们的安排来访问这些段,就要:对于数据段,将它的段地址存放在DS中 ,用mov,add,sub 等访问原创 2015-04-21 20:15:56 · 358 阅读 · 0 评论 -
汇编语言的前言
汇编语言是很多相关课程的重要基础,例如:数据结构,操作系统,微机原理,其实从课程关系的角度讨论汇编语言的重要性只是片面的,概况的说,如果你想从事计算机科学方面的工作的话,汇编语言的基础是必不可少的,原因很简单,我们的工作平台,研究对象多是机器,汇编语言是人和计算机沟通的最直接的方式,它描述了机器最终所要执行的指令序列。想深入研究英国文化,不会英语行吗?汇编语言是和具体的微处理器相联系的,每一种微处理原创 2015-04-23 10:59:39 · 961 阅读 · 0 评论 -
简单汇编编程练习
//第一个程序assume cs:codesgcodesg segment mov ax,0123h mov bx,0456h add ax,bx add ax,ax mov ax,4c00h int 21hcodesg endsend//第二个程序assume cs:codesgcodesg segment mov ax,2000H原创 2015-04-24 18:47:45 · 397 阅读 · 0 评论 -
栈的综述
(1)8086CPU 提供了栈操作机制, 方案如下。在SS,SP中存放栈顶的段地址和偏移地址;提供入栈和出栈指令,他们根据SS:SP指示的地址,按照栈的方式访问内存单元(2)push 指令的执行步骤: a: sp=sp-2; b: 向ss:sp指向的子单元中送人数据。(3)pop指令的执行步骤: a:从SS:SP 指向的字单元中读取数据;b:sp=sp+2;(4) 任意时刻,SS:SP 指向栈顶原创 2015-04-21 19:46:54 · 272 阅读 · 0 评论