随笔 - 13, 文章 - 0, 评论 - 0, 引用 - 0
数据加载中……

汇编语言学习笔记——第三章 寄存器(内存访问)


3.1 内存中字的存储——
    字单元:存放一个字型数据(16位)的内存单元,由两个地址连续的内存单元组成。

3.2 DS和[address]——
    8086CPU不支持将数据直接送入段寄存器的操作。
   
3.3 字的传送
3.4 mov/add/sub指令——
    mov指令形式:
    mov 寄存器,数据
    mov 寄存器,寄存器
    mov 寄存器,内存单元
    mov 内存单元,寄存器
    mov 段寄存器,寄存器
    add指令形式:
    add 寄存器,数据
    add 寄存器,寄存器
    add 寄存器,内存单元
    add 内存单元,寄存器
    sub指令形式:
    sub 寄存器,数据
    sub 寄存器,寄存器
    sub 寄存器,内存单元
    sub 内存单元,寄存器

3.5 数据段
3.6 栈
3.7 CPU提供的栈机制——
    8086CPU的入栈和出栈操作都以字为单位进行。
    SS段寄存器:栈顶的段地址。
    SP寄存器:偏移地址。
    任意时刻:SS:SP指向栈顶元素。

3.8 栈顶超界的问题——
    8086CPU不保证对栈的操作不会超界。

3.9 push/pop指令——
    push/pop 寄存器/段寄存器/内存单元

3.10栈段——
    一个栈段的容量最大为64KB。

    注:栈是一种非常重要的机制,要深入理解,灵活掌握。需要参照教材认真学习栈。

END
2012年01月01日

posted @ 2012-01-03 18:52 龙傲天下 阅读(133) | 评论 (0)编辑 收藏

汇编语言学习笔记——第二章 寄存器


在CPU中:
   运算器进行信息处理;
   寄存器进行信息存储;
   控制器控制各种器件进行工作;
   内部总线连接各种器件,在它们之间进行数据传送。

8086CPU有14个寄存器:(8086所有寄存器16位)
   AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW

2.1 通用寄存器——
   通用寄存器:AX、BX、CX、DX;
   16位可分两个独立使用的8位寄存器:
   AX=AH+AL;BX=BH+BL;CX=CH+CL;DX=DH+DL。
   AX的低8位构成AL,高8位构成AH寄存器。

2.2 字在寄存器中的存储——
   字节:byte,8个bit;
   字:两个字节,为高位字节和低位字节。

2.3 几个汇编指令——
   写汇编指令或寄存器名称时不分大小写。
   数据传送或运算时,指令的两个操作对象的位数应当一致。

2.4 物理地址
2.5 16位结构的CPU——
   16位结构描述了一个CPU具有的结构特性:
   (1)运算器一次最多可以处理16位的数据;
   (2)寄存器的最大宽度为16位;
   (3)寄存器和运算器之间的通路为16位。

2.6 8086CPU给出物理地址的方法——
   地址加法器:物理地址=段地址*16+偏移地址;
   简捷算法:段地址*16 即 左移4位。

2.7 “段地址*16+偏移地址=物理地址”的本质含义——
   本质含义:CPU在访问内存时,用一个基础地址(段地址*16)和一个相对于基础地址的偏移地址相加,给出 内存单元的物理地址。
   基础地址+偏移地址=物理地址。

2.8 段的概念——
   段地址*16:定位段的起始地址(基础地址)。
   偏移地址:定位段中的内存单元。
   一个段的最大长度为64KB。

2.9 段寄存器——
   8086CPU有4个段寄存器:CS、DS、SS、ES。

2.10CS和IP——
   CS:代码段寄存器。
   IP:指令指针寄存器。
   8086机中,任意时刻,CPU将CS:IP指向的内容当作指令执行。

2.11修改CS、IP的指令——
   jmp指令:jmp 段地址:偏移地址
   用指令中给出的段地址修改CS,偏移地址修改IP。
   “jmp 某一合法寄存器”:用寄存器中的值修改IP。

2.12代码段

实验1 查看CPU和内存,用机器指令和汇编指令编程
   略。

END
2012年01月01日

posted @ 2012-01-03 18:33 龙傲天下 阅读(177) | 评论 (0)编辑 收藏

汇编语言学习笔记——第一章 基础知识

学习教材:《汇编语言(第2版)》,王爽,清华大学出版社

第一章 基础知识

1.1机器语言
1.2汇编语言的产生
1.3汇编语言的组成——
   (1)汇编指令:机器码的助记符,有对应的机器码;
   (2)伪指令:无对应的机器码,由编译器执行;
   (3)其他符号:如+、-、*、/等,由编译器识别,无对应的机器码。
   汇编语言的核心:汇编指令。它决定了汇编语言的特性。

1.4存储器
1.5指令和数据——
   指令和数据是应用上的概念。存储时无区别,二进制。

1.6存储单元——
   1Byte=8bit;
   微机存储器:1存储单元=1Byte=8bit;1存储器=128存储单元=128Byte
   微机存储器的容量以字节为最小单位计算。

1.7CPU对存储器的读写——
   CPU进行数据读写的3类信息交换:
   (1)存储单元的地址(地址信息);
   (2)器件的选择,读或写的命令(控制信息);
   (3)读或写的数据(数据信息);
   总线的逻辑分类:地址总线、控制总线、数据总线。

1.8地址总线——
   CPU地址总线宽度=地址线根数N。这样的CPU最多可以寻找2的N次方个内存单元。

1.9数据总线——
   数据总线的宽度决定了CPU的外界的数据传送速度。
   8088CPU的数据总线宽度为8,8086的数据总线宽度为16。
   例:传送数据89D8H:8088两次传送,8086一次传送。

1.10控制总线——
   控制总线是不同控制线的集合。
   控制总线宽度决定了CPU对外部器件的控制能力。

1.11内存地址空间(概述)
1.12主板
1.13接口卡
1.14各类存储器芯片
1.15内存地址空间——
   内存地址空间的大小受CPU地址总线宽度的限制。
   8086CPU的地址总线宽度为20,内存地址空间大小为1MB;80386CPU地址总线宽度为32,内存地址空间最大为4GB。

END
2012年01月01日

posted @ 2012-01-03 18:30 龙傲天下 阅读(135) | 评论 (0)编辑 收藏

仅列出标题
共2页: 1 2