(1) bit与Byte
bit是计算机中最小的信息单位,
在表示数据传输速度的时候一般用bit来做为单位来表示。
在表示存储器的容量的时候,byte字节是最小的单位。
(2) 地址总线与地址总线宽度
CPU是通过地址总线来指定存储器单元的。
地址总线上能传送多少个不同的信息,
CPU就可以对多少个存储单元进行寻址。
记得:存储单元的单位为Byte而不是bit。
如一个CPU有10根地址线,
一根导线可以传送的稳定状态只有两种,
高电平或是低电平。用二进制表示就是1或0,
1...
[2008-02-09 04:55] 01天学习笔记
阅读全文 |
作者:taotling |
评论次数(4) |
浏览次数(801)
[2010-07-14 21:01] 汇编语言——第七天
1.[bx]和内存单元的描述
要完整地描述一个内存单元,需要两种信息:一、内存单元的地址;二、内存单元的长度(类型)。
[bx]表示一个内存单元,它的偏移地址在bx中。
loop有循环的含义,这个指令和循环有关。
约定符号idata表示常量,如mov ax,[idata]代表mov ax,[1]、mov ax,[2]
mov bx,idata代表mov bx,1、mov bx,2
这些都是非法指令。
inc bx的含义是bx中...
要完整地描述一个内存单元,需要两种信息:一、内存单元的地址;二、内存单元的长度(类型)。
[bx]表示一个内存单元,它的偏移地址在bx中。
loop有循环的含义,这个指令和循环有关。
约定符号idata表示常量,如mov ax,[idata]代表mov ax,[1]、mov ax,[2]
mov bx,idata代表mov bx,1、mov bx,2
这些都是非法指令。
inc bx的含义是bx中...
[2010-07-16 19:20] 汇编语言——第八天
在操作系统的环境中,合法地通过操作系统取得的空间都是安全的,因为操作系统不会让一个程
序所用的空间和其他程序以及系统自己的空间相冲突。早操作系统允许的情况下,程序可以取得任意
容量的空间。
陈旭取得所需空间的方法有两种,一是在加载程序的时候为程序分配,再就是程序在执行的过程
中向系统申请。在我们的课程中,不讨论第二种方法。
我们若要一个程序在被加载的时候取得所需的空间,则必须要在原程序中作出说明。我们通过在
原程序中定义段来进行定内存空间的获取。
1.在代码段中使用数据
“dw”的含义是定义字型数据。dw即“define word”具...
序所用的空间和其他程序以及系统自己的空间相冲突。早操作系统允许的情况下,程序可以取得任意
容量的空间。
陈旭取得所需空间的方法有两种,一是在加载程序的时候为程序分配,再就是程序在执行的过程
中向系统申请。在我们的课程中,不讨论第二种方法。
我们若要一个程序在被加载的时候取得所需的空间,则必须要在原程序中作出说明。我们通过在
原程序中定义段来进行定内存空间的获取。
1.在代码段中使用数据
“dw”的含义是定义字型数据。dw即“define word”具...
[2010-07-06 23:26] 汇编语言——第二天
1.寄存器
一个典型的CPU由运算器(信息处理)、控制器(控制各种期间进行工作)、寄存器(信息处理)等器
件构成,这些器件靠内部总线相连,在它们之间进行数据的传送。
对于汇编程序员,CPU的主要部件是寄存器。寄存器是CPU中程序员可以用指令读写的部件。通过改变
各种寄存器中的内容来实现对CPU的控制。
不同的CPU,寄存器的个数、结构是不相同的。
2.通用寄存器。
AX(Accumulator)、BX(Base)、CX(Count)、DX(Data)被成为通用寄存器,用来存放一般行的数据。
AX、BX、CX、DX都可分为两个独立使...
一个典型的CPU由运算器(信息处理)、控制器(控制各种期间进行工作)、寄存器(信息处理)等器
件构成,这些器件靠内部总线相连,在它们之间进行数据的传送。
对于汇编程序员,CPU的主要部件是寄存器。寄存器是CPU中程序员可以用指令读写的部件。通过改变
各种寄存器中的内容来实现对CPU的控制。
不同的CPU,寄存器的个数、结构是不相同的。
2.通用寄存器。
AX(Accumulator)、BX(Base)、CX(Count)、DX(Data)被成为通用寄存器,用来存放一般行的数据。
AX、BX、CX、DX都可分为两个独立使...
[2010-07-08 19:43] 实验1 查看CPU和内存,用极其指令和汇编指令编程
Debug是DOS、Windows都提供的实模式(8086方式)程序的调试工具。使用它,可以查看CPU各种寄存其中的内容、内容的情况和在机器码级跟踪程序的运行。
Debug部分指令
-r 查看、改变CPU寄存器的内容 例:查看CPU寄存器(r);修改某一寄存器如ax(r ax)输入指令后enter,在:后面输入要写入的数据
-d 查看内存中的内容 格式(d 段地址:偏移地址)例:内存10000H处的内容:d 1000:0 debug将列出从指定单元内存开始的128个内存单元的内容;在一进入debug,用D命令查看,将列出debug预设的地址处的内容,接着使用D命令,可列出后续...
Debug部分指令
-r 查看、改变CPU寄存器的内容 例:查看CPU寄存器(r);修改某一寄存器如ax(r ax)输入指令后enter,在:后面输入要写入的数据
-d 查看内存中的内容 格式(d 段地址:偏移地址)例:内存10000H处的内容:d 1000:0 debug将列出从指定单元内存开始的128个内存单元的内容;在一进入debug,用D命令查看,将列出debug预设的地址处的内容,接着使用D命令,可列出后续...
[2010-07-08 14:59] 汇编语言——第三天
1.段寄存器
当8086CPU要访问内存时由CS(code segment)、DS(data segment)、SS(stack segment)、ES(extra segment)这4个段寄存器提供内存单元的段地址。
2.CS和IP
CS(代码段寄存器)和IP(指令指针寄存器)是8086CPU中两个最关键的寄存器,它们指示了CPU当前要读取指令的地址。
8086机中,任意时刻,CPU将CS:IP指向的内容当作指令执行。
8086CPU的工作过程简要描述如下:
(1)从CS:IP指向的内存单元读取指令,读取的指令进入指令缓冲器;
(2)IP=IP+所读取...
当8086CPU要访问内存时由CS(code segment)、DS(data segment)、SS(stack segment)、ES(extra segment)这4个段寄存器提供内存单元的段地址。
2.CS和IP
CS(代码段寄存器)和IP(指令指针寄存器)是8086CPU中两个最关键的寄存器,它们指示了CPU当前要读取指令的地址。
8086机中,任意时刻,CPU将CS:IP指向的内容当作指令执行。
8086CPU的工作过程简要描述如下:
(1)从CS:IP指向的内存单元读取指令,读取的指令进入指令缓冲器;
(2)IP=IP+所读取...
[2010-07-09 23:44] 汇编语言——第四天
1.内存中字的存储
由于内存单元是字节单元,所以一个字要用两个连续的内存单元来存放,低位字节放在低地址单元中,高位字节放在高地址单元中。
字单元:即存放一个字型数据(16位)的内存单元,由两个连续的内存单元组成。高地址内存单元中存放字型数据的高位字节,低地址内存单元中存放字型数据的低位字节。
任何两个地址连续的内存单元,N号单元和N+1号单元,可以将它们看成两个内存单元,也可堪称一个地址为N的字单元中的高位字节单元(N+1)和低位字节单元(N)。
2.DS和[address]
CPU要读写一个内存单元的时候,必须先给出这个内存单元的地址,在8086CP...
由于内存单元是字节单元,所以一个字要用两个连续的内存单元来存放,低位字节放在低地址单元中,高位字节放在高地址单元中。
字单元:即存放一个字型数据(16位)的内存单元,由两个连续的内存单元组成。高地址内存单元中存放字型数据的高位字节,低地址内存单元中存放字型数据的低位字节。
任何两个地址连续的内存单元,N号单元和N+1号单元,可以将它们看成两个内存单元,也可堪称一个地址为N的字单元中的高位字节单元(N+1)和低位字节单元(N)。
2.DS和[address]
CPU要读写一个内存单元的时候,必须先给出这个内存单元的地址,在8086CP...
[2010-07-10 20:20] 汇编语言——第五天
1.栈
栈有两个基本的操作:入栈和出栈。入栈就是将一个新的元素放到栈顶,出栈就是从栈顶取出一
个元素。栈顶的元素总是最后入栈,需要出栈时,又最先被从栈中取出。栈的这种操作规则被称为:
LIFO(Last In First Out)。
2.CPU提供的栈机制
8086CPU提供入栈和出栈指令,最基本的两个是PUSH(入栈)和POP(出栈)。在8086CPU中,有
两个寄存器,段寄存器SS和寄存器SP,栈顶的段地址存放在SS中,偏移地址存放在SP中,让人一时刻
,SS:SP指向栈顶元素。push指令和pop指令执行时,CPU从SS和SP中得到栈顶的地址...
栈有两个基本的操作:入栈和出栈。入栈就是将一个新的元素放到栈顶,出栈就是从栈顶取出一
个元素。栈顶的元素总是最后入栈,需要出栈时,又最先被从栈中取出。栈的这种操作规则被称为:
LIFO(Last In First Out)。
2.CPU提供的栈机制
8086CPU提供入栈和出栈指令,最基本的两个是PUSH(入栈)和POP(出栈)。在8086CPU中,有
两个寄存器,段寄存器SS和寄存器SP,栈顶的段地址存放在SS中,偏移地址存放在SP中,让人一时刻
,SS:SP指向栈顶元素。push指令和pop指令执行时,CPU从SS和SP中得到栈顶的地址...
[2010-07-20 10:27] 汇编语言——第九天
1.and和or指令
(1)and指令:逻辑与指令,按位进行与运算
如
mov al,01100011B
add al,00111011B
执行后:al=00100011B
通过该指令可将操作对象的相应位设为0,其他位不变
(2)or指令:逻辑或指令,按位进行或运算。语言语言地汇编语言回避那前34
如
mov al,01100011B
or al,00111011B
执行后:al=01111011B
通过该指令可将操作对象的相应位设为1,其他位不变。
2.关于ASCII码
ASCII编码,是在计算机中通常被采用的。简单地说,所谓编码方案,就是一套规则...
(1)and指令:逻辑与指令,按位进行与运算
如
mov al,01100011B
add al,00111011B
执行后:al=00100011B
通过该指令可将操作对象的相应位设为0,其他位不变
(2)or指令:逻辑或指令,按位进行或运算。语言语言地汇编语言回避那前34
如
mov al,01100011B
or al,00111011B
执行后:al=01111011B
通过该指令可将操作对象的相应位设为1,其他位不变。
2.关于ASCII码
ASCII编码,是在计算机中通常被采用的。简单地说,所谓编码方案,就是一套规则...
[2010-07-21 19:36] 汇编语言——第十天
为了描述方便,我们将使用两个描述行的符号reg来表示寄存器,永sreg表示一个段寄存器。
reg:{ax、bx、cx、dx、ah、al、bh、bl、ch、cl、dh、dl、sp、bp、si、di}
sreg:{ds、ss、cs、es}
1.bx、si、di和bp
(1)在8086CPU中,只有这4个寄存器可以永在“[...]”中来进行内存单元的寻址。
(2)在[...]中,这4个寄存器可以单个出现,或只能以4中组合出现:bx和si、bx和di、bp和si、bp和di。
(3)只要在[...]中使用寄存器bp,而指令中没有显性地给出段地址,段地址就默认在...
reg:{ax、bx、cx、dx、ah、al、bh、bl、ch、cl、dh、dl、sp、bp、si、di}
sreg:{ds、ss、cs、es}
1.bx、si、di和bp
(1)在8086CPU中,只有这4个寄存器可以永在“[...]”中来进行内存单元的寻址。
(2)在[...]中,这4个寄存器可以单个出现,或只能以4中组合出现:bx和si、bx和di、bp和si、bp和di。
(3)只要在[...]中使用寄存器bp,而指令中没有显性地给出段地址,段地址就默认在...
[2010-07-24 20:49] 汇编语言——第十一天
可以修改IP,或同时修改CS和IP的指令统称为转移指令。概括地讲,转移指令就是可以控制CPU执行内存中某处代码的指令。
8086CPU的转移行为有以下几类。
只修改IP时,称为段内
转移,比如:jmp ax。
同时修改CS和IP时,称为断间转移,比如:jmp 1000:0。
由于转移指令对IP的修改范围不同,段内转移又分为:短转移和近转移。
短转移IP的修改范围为“-128~127”
近转移IP的修改范围为“-32768~32767”
8086CPU的转移指令分为以下几类。
无条件转移指令(如:jmp)
条件转移指令
循环指...
8086CPU的转移行为有以下几类。
只修改IP时,称为段内
转移,比如:jmp ax。
同时修改CS和IP时,称为断间转移,比如:jmp 1000:0。
由于转移指令对IP的修改范围不同,段内转移又分为:短转移和近转移。
短转移IP的修改范围为“-128~127”
近转移IP的修改范围为“-32768~32767”
8086CPU的转移指令分为以下几类。
无条件转移指令(如:jmp)
条件转移指令
循环指...
[2010-07-05 15:22] 汇编语言——第一天
1.汇编语言的由来
早期使用的语言为极其语言,但由于机器语言难于辨别和记忆,SO,汇编语言应运而生。
汇编语言的主体是汇编指令,汇编指令的写法与人类语言相接近,便于阅读和记忆。
汇编语言执行过程:
程序员——汇编指令——编译器——机器码——计算机执行。
2.汇编语言的组成
汇编语言由3类指令组成:
(1)汇编指令,如mov,jmp等机器码的助记符,有对应的机器码。
(2)伪指令:如Code segment,Data segment等,没有对应的机器码,由编辑器执行,但计算机不执行。
(3)其他符号:如+、-、*、/等,...
早期使用的语言为极其语言,但由于机器语言难于辨别和记忆,SO,汇编语言应运而生。
汇编语言的主体是汇编指令,汇编指令的写法与人类语言相接近,便于阅读和记忆。
汇编语言执行过程:
程序员——汇编指令——编译器——机器码——计算机执行。
2.汇编语言的组成
汇编语言由3类指令组成:
(1)汇编指令,如mov,jmp等机器码的助记符,有对应的机器码。
(2)伪指令:如Code segment,Data segment等,没有对应的机器码,由编辑器执行,但计算机不执行。
(3)其他符号:如+、-、*、/等,...
[2010-07-11 15:16] 汇编语言——第六天
1.一个源程序从写出到执行的过程
编写汇编源程序——对源程序进行编译连接——执行可执行文件中的程序
2.源程序
在汇编语言源程序中,包含两种指令,一种是汇编指令,一种是伪指令。汇编指令是有对应的机器码的指令,可以被编译为机器指令,最终为CPU所执行。而伪指令没有对应的机器指令,最终不被CPU所执行。而是由编译器来执行,根据伪指令来进行相关的编译工作。
segment和ends是一对成对使用的伪指令。这事在写可被编译器编译的汇编程序时,必须要用到的一对伪指令。segment和ends的功能是定义一个短,segment说明一个段开始,ends说明一个段的结束。一个段...
编写汇编源程序——对源程序进行编译连接——执行可执行文件中的程序
2.源程序
在汇编语言源程序中,包含两种指令,一种是汇编指令,一种是伪指令。汇编指令是有对应的机器码的指令,可以被编译为机器指令,最终为CPU所执行。而伪指令没有对应的机器指令,最终不被CPU所执行。而是由编译器来执行,根据伪指令来进行相关的编译工作。
segment和ends是一对成对使用的伪指令。这事在写可被编译器编译的汇编程序时,必须要用到的一对伪指令。segment和ends的功能是定义一个短,segment说明一个段开始,ends说明一个段的结束。一个段...
[2007-11-14 13:48] 程序人生--一个程序员对学弟学妹建议(转)
作者用心良苦,请大家认真看看吧!再说下自己的想法!
我始终认为,对一个初学者来说,IT界的技术风潮是不可追赶。我时常看见自己的DDMM们把课本扔了,去卖些价格不菲的诸如C#, VB.Net 这样的大部头,这让我感到非常痛心。而许多搞不清指针是咋回事的BBS站友眉飞色舞的讨论C#里面可以不用指针等等则让我觉得好笑。C#就象当年的ASP一样,“忽如一夜春风来,千树万树梨花开”,结果许多学校的信息学院成了“Web 学院”。96,97级的不少大学生都去做Web 了。当然我没有任何歧视某一行业的意识。我只是觉得如果他们把追赶这些时髦技术的时间多花一点在基础的课程上应该是可以走得更远...
我始终认为,对一个初学者来说,IT界的技术风潮是不可追赶。我时常看见自己的DDMM们把课本扔了,去卖些价格不菲的诸如C#, VB.Net 这样的大部头,这让我感到非常痛心。而许多搞不清指针是咋回事的BBS站友眉飞色舞的讨论C#里面可以不用指针等等则让我觉得好笑。C#就象当年的ASP一样,“忽如一夜春风来,千树万树梨花开”,结果许多学校的信息学院成了“Web 学院”。96,97级的不少大学生都去做Web 了。当然我没有任何歧视某一行业的意识。我只是觉得如果他们把追赶这些时髦技术的时间多花一点在基础的课程上应该是可以走得更远...
页码数(1):
1