简明x86汇编语言教程(5)
原创:司徒彦南
2002年6月5日
3.4 串操作
我们前面已经提到,内存可以和寄存器交换数据,也可以被赋予立即数。问题是,如果我们需要把内存的某部分内容复制到另一个地址,又怎么做呢?
设想将DS:SI处的连续512字节内容复制到ES:DI(先不考虑可能的重叠)。也许会有人写出这样的代码:
NextByte:
mov cx,512mov al,ds:[si]mov es:[di],alinc siinc diloop NextByte
; 循环次数
我不喜欢上面的代码。它的确能达到...
简明x86汇编语言教程(4)[修订版]
原创:司徒彦南
2002年6月1日
第三章 操作内存
在前面的章节中,我们已经了解了寄存器的基本使用方法。而正如结尾提到的那样,仅仅使用寄存器做一点运算是没有什么太大意义的,毕竟它们不能保存太多的数据,因此,对编程人员而言,他肯定迫切地希望访问内存,以保存更多的数据。
我将分别介绍如何在保护模式和实模式操作内存,然而在此之前,我们先熟悉一下这两种模式中内存的结构。
3.1 实模式
事实上,在实模式中,内存比保护模式中的结构更令人困惑。内存被分割成段,并且,操作内存时,需要指定段和偏移量。...
简明x86汇编语言教程(3)
原创:司徒彦南
2002年5月12日
2.2 使用寄存器
在前一节中的x86基本寄存器的介绍,对于一个汇编语言编程人员来说是不可或缺的。现在你知道,寄存器是处理器内部的一些保存数据的存储单元。仅仅了解这些是不足以写出一个可用的汇编语言程序的,但你已经可以大致读懂一般汇编语言程序了(不必惊讶,因为汇编语言的祝记符和英文单词非常接近),因为你已经了解了关于基本寄存器的绝大多数知识。
在正式引入第一个汇编语言程序之前,我粗略地介绍一下汇编语言中不同进制整数的表示方法。如果你不了解十进制以外的其他进制,请把鼠...
简明x86汇编语言教程(2)
原创:司徒彦南
2002年4月24日
第二章 认识处理器
中央处理器(CPU)在微机系统处于“领导核心”的地位。汇编语言被编译成机器语言之后,将由处理器来执行。那么,首先让我们来了解一下处理器的主要作用,这将帮助你更好地驾驭它。
典型的处理器的主要任务包括
从内存中获取机器语言指令,译码,执行
根据指令代码管理它自己的寄存器
根据指令或自己的的需要修改内存的内容
响应其他硬件的中断请求
一般说来,处理器拥有对整个系统的所有总线的控制权。对于Intel平台而言,处理器...
简明x86汇编语言教程(1)
原创:司徒彦南
2002年4月8日
第○章 写在前面
我不想夸大或者贬低汇编语言。但我想说,汇编语言改变了20世纪的历史。与前辈相比,我们这一代编程人员足够的幸福,因为我们有各式各样的编程语言,我们可以操作键盘、坐在显示器面前,甚至使用鼠标、语音识别。我们可以使用键盘、鼠标来驾驭“个人计算机”,而不是和一群人共享一台使用笨重的继电器、开关去操作的巨型机。相比之下,我们的前辈不得不使用机器语言编写程序,他们甚至没有最简单的汇编程序来把助记符翻译成机器语言,而我们可以从上千种计算机语言中选择我们喜欢的一种,...
http://gocom.primeton.com/blog2085_505.htm
作者:IT168 李丙洋
RMAN非常有意思,做为一个专业的备份工具,它几乎考虑到了备份及恢复过程中可能遇到的各种操作,由此它也提供了各种各样的命令来为这些操作提供便利。 一、启动、关闭数据库 在RMAN中执行关闭和启动数据库的命令与SQL环境下一模一样。当然,在执行之前,你需要先连接到目标数据库,如例:
C:Documents and SettingsAdministrator>rman target /
恢复管理器: 版本9.2.0.1.0 - Production
Copyright ...
· 作者 小荷||【转载时请务必以超链接形式标明文章原始出处和作者信息】 · 永久链接: http://www.oracleblog.cn/useful-script/shell-for-delete-standby-arch/
Dataguard的维护稍微麻烦点,不能删除尚未applied的归档日志,但是每次手工去核对就比较麻烦了,今天在pub上看到这样一个要求:“哪位有 standby数据库 定期删除已经apply的archive的shell脚本?”于是就写了个脚本,基本可以满足题目的要求:
1、已经在standby库apply的;
2、2天以上的
脚本如下(具体的脚本和初...
————————————————————
编程少年基地
http://www.bcsnjd.cn
提供代码测试、视频培训等功能
最新推出:
ASP.NET快速入门系列视频讲座
张孝祥java视频系列教程
更多的教程不用下载直接在线观看
——————————————————————————————————————————————
控件名:Accordion
用途:做想qq那样的折叠菜单等。
操作:
1.将Accordion控件拖到页面。
<cc1:Accordion ID="Accordion3" runat="server...
————————————————————
编程少年基地
http://www.bcsnjd.cn
提供代码测试、视频培训等功能
最新推出:
ASP.NET快速入门系列视频讲座
张孝祥java视频系列教程
更多的教程不用下载直接在线观看
——————————————————————————————————————————————
控件名:TabContainer
用途:做选项卡,就想ie7.0,ie8.0那样的选项卡。
操作:
1.先将TabContainer拖到页面,然后切换到源视图,将会自动生成代码:
<cc1:TabCo...
/*
-------------存储结构-三元组-----------------
#define MAXSIZE 10000 /*非0元素个数最大值10000*/
typedef struct{ int i,j; /*非0元素的行、列下标*/
ElemType e; /*非0元素值*/
}Triple;
typedef struct{ /*稀疏距阵存储结构*/
Triple data[MAXSIZE+1];/...
创建稀疏矩阵相应三元组的算法如下所示:
#define MAXSIZE 1000 /*假设非零元个数的最大值是1000*/
typedef struct
{
int i, j;
elemtype v;
}triple;
typedef struct
{
triple data[MAXSIZE+1]; /*data[0]用于存放稀疏矩阵行,列和非零元个数*/
int mu, nu, tu; /*稀疏矩阵行、列和非零元的个数*/
} spmatrix;
spmatrix a;
void CreatTripleTable (int array_a[M][N],spm...
用二维数组实现"魔方阵"的打印,所谓“魔方阵”是指满足每一行,每一列和对角线上的元素之和均相等的方阵。如:
8 1 63 5 74 9 2
就是一个三阶的魔方阵。现在要求编程实现任意输入一个自然数n,打印出相应的n阶魔方阵。
参考答案:
打印“魔方阵”算法如下所示:
void MagicMatrix( )
{
int a[16][16],i,j,k,p,m,n;
p=1;
while(p==1) /*输入1~15的奇数*/
{
printf("Please input n(n=1~15)\n");
scanf("%d",&...
如果你知道,有个人确实犯了错误,而你直率的告诉他,指责他,你知道会发生什么样的后果?我举出这样一个特殊的例子来:S
君是纽约一位年轻的律师,最近在美国最高法院辩护一件重要案子,这椿案件牵涉到一笔钜额的金钱,和一项重要的法律问题。
在辩护过程中,一位法官向S 君说:“海军法的申诉期限是六年,是不是?”
S君沉默了一下,目注法官片刻,然后就即说:“法官合下,海军法中并没有这样限制的条文。”
S君在讲习班中,叙述当时的情形,说:“当我说出这话后,整个法庭顿时沉寂下来,而这间屋子里的气温,似乎就在刹那间降到了零度。我是对的,法官是错...
在面向对象的程序开发中,一般将类和其成员函数的声明放在指定的头文件中,将成员函数的定义放在另一个源文件中。从而提高编程效率和实现信息隐蔽。下面以一个线性表为例。
//seq.h#ifndef seq_H#define seq_Hconst int MaxSize=100;template <class T>class SeqList...{public: SeqList(); SeqList(int a[],int n); ~SeqList(); int Length(); T Get(int i); int Locate(T x); ...
bool tcd_rateallocate(opj_tcd_t *tcd, unsigned char *dest,int len,opj_codestream_info_t *cstr_info) { int compno, resno, bandno, precno, cblkno, passno, layno; double min, max; double cumdisto[100]; /* fixed_quality */ const double K = 1; /* 1.1; fixed_quality */ dou...
前言: string 的角色 1 string 使用 1.1 充分使用string 操作符 1.2 眼花缭乱的string find 函数 1.3 string insert, replace, erase 2 string 和 C风格字符串 3 string 和 Charactor Traits 4 string 建议 5 小结 6 附录前言: string 的角色
C++ 语言是个十分优秀的语言,但优秀并不表示完美。还是有许多人不愿意使用C或者C++,为什么?原因众多,其中之一就是C/C++的文本处理功能太麻烦,用起来很不方便。以前没有接触过其他语言时,每当别人这么说,我总是不屑...
CString,string,char*的综合比较 (一) 概述 string和CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C++标准之中; CString(typedef CStringT<TCHAR, StrTraitMFC<TCHAR>> CString)为Visual C++中最常用的字符串类,继承自CSimpleStringT类,主要应用在MFC和ATL编程中,主要数据类型有char(应用于ANSI),wchar_t(unicode),TCHAR(ANSI...
版本: V1.0出品: 本站原创来源: 本地语言: 简体中文授权: 免费
题目:有一段文字,如"they is going to do his washing.these is goods.",把其中的所有"is"都替换成"are"。
之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。 首先,为了在我们的程序中使用string类型,我们必须包含头文件 <string>。如下: #include <string> //注意这里不是string.h string.h是C字符串头文件 1.声明一个C++字符串 声明一个字符串变量很简单: st...