本博文系列参考自>第三版,作者:王爽
各种存储器都通过地址总线,数据总线以及控制总线与CPU相连。CPU对这些各种存储器组成的存储单元进行统一编址,统一寻址。除了各种存储器和CPU相连之外,还有以下几种芯片和CPU相连:
(1)各种接口卡(比如网卡,显卡)上的芯片,它们控制接口卡工作
(2)主板上的接口芯片,CPU通过它们对部分外设进行访问
(...
分类:
编程语言 时间:
2016-05-03 18:12:29
阅读次数:
167
本博文系列参考自>第三版,作者:王爽
前面已经通过类似[0]和[bx]的方法进行了内存定位了。本章将涉及更多内存地址定位和编程的方法。
7.1 and 和 or 指令
(1) and指令,逻辑按位与指令
例如:
mov al,01100011B
and al,00111011B
执行后 al=00100011B
and指令可以用来将某个数的位置为零。
比如我们要...
分类:
编程语言 时间:
2016-04-29 19:30:14
阅读次数:
284
本博文系列参考自>第三版,作者:王爽
计算机CPU进行数据处理包括两个基本的问题:1.数据在何处? 2.数据有多大? 本章作为一个前面内容的总结性章节,主要来说明这两个问题。我们定义两个符号reg和sreg。其中reg为寄存器,sreg为段寄存器
reg包括:ax,bx,cx,dx,ah,al,bh,bl,ch,cl,dh,dl,sp,bp,si,...
分类:
编程语言 时间:
2016-04-29 18:20:15
阅读次数:
278
本博文系列参考自>第三版,作者:王爽
可以修改IP寄存器的值,或者同时修改CS与IP的值的指令称为转移指令。转移指令的功能就是使得CPU执行内存中某段特定的指令或程序。
8086CPU的转移行为分为如下几类;
1.只改变IP值,称为段内转移。比如 jmp ax;段内转移又分为短转移和近转移。短转移IP的修改范围为-128~127,近转移IP的修改范围为-32768~32767.
...
分类:
编程语言 时间:
2016-04-29 17:08:27
阅读次数:
300
本博文系列参考自>第三版,作者:王爽
call与ret都是转移指令,它们可以改变IP值,或者同时改变CS与IP的值,往往在程序中使用它们进行子程序模块的设计。
10.1 ret和retf
ret用栈的数据修改IP的内容,实现近转移
retf用栈中的数据修改CS与IP的内容,实现远转移
ret执行步骤:
(1):(IP)=((SS)*16+SP)
(2...
分类:
编程语言 时间:
2016-04-29 16:25:53
阅读次数:
274
本博文系列参考自>第三版,作者:王爽
8086CPU的标志寄存器有16位,其中存储的信息通常被称为程序状态字(PSW)。除了前面介绍的寄存器。本博文将介绍最后一个寄存器,标志寄存器。不同于之前的寄存器,标志寄存器是按位起作用的。其每一位都有特殊的含义。
8086标志寄存器的结构如下图所示:
标志寄存器的1,3,5,12,13,14,15都没有特殊含义。其0,2,4...
分类:
编程语言 时间:
2016-04-29 15:52:04
阅读次数:
276
原实例在APUE(第三版)17.2UNIX域套接字1、使用UNIX与套接字轮询XSI消息队列(poll版,原版)#include"apue.h"
#include<poll.h>
#include<pthread.h>
#include<sys/msg.h>
#include<sys/socket.h>
#defineNQ 3 //队列的数量
#defineMAXMSZ 512 ..
分类:
其他好文 时间:
2016-04-28 12:35:30
阅读次数:
209
算法导论 第三版 第二章介绍的 第一个算法 插入排序 C语言实现代码 插入排序是基础中的基础 据这本书说 ...
分类:
编程语言 时间:
2016-04-28 12:07:26
阅读次数:
198
本博文系列参考自>第三版,作者:王爽
前面已经通过类似[0]和[bx]的方法进行了内存定位了。本章将涉及更多内存地址定位和编程的方法。
7.1 and 和 or 指令
(1) and指令,逻辑按位与指令
例如:
mov al,01100011B
and al,00111011B
执行后 al=00100011B
and指令可以用来将某个数的位置为零。
比如我们要...
分类:
编程语言 时间:
2016-04-26 21:36:02
阅读次数:
202
本博文系列参考自>第三版,作者:王爽
计算机CPU进行数据处理包括两个基本的问题:1.数据在何处? 2.数据有多大? 本章作为一个前面内容的总结性章节,主要来说明这两个问题。我们定义两个符号reg和sreg。其中reg为寄存器,sreg为段寄存器
reg包括:ax,bx,cx,dx,ah,al,bh,bl,ch,cl,dh,dl,sp,bp,si,...
分类:
编程语言 时间:
2016-04-26 20:38:51
阅读次数:
207