自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Good good study!

Day day up!

  • 博客(28)
  • 资源 (1)
  • 收藏
  • 关注

转载 foo和bar

经常见到`foo 、 `bar 或 `foobar 等词,却没有任何适当的解释或者定义。 他们一般都被当作变量。好多例程都拿Foo来做函数名或者类名,应该就像张三、李四一样用来举例子用的。  "Foo" 的辞源 自从 RFC 269 以来,约有 212 篇计算机与通讯技术文件 (RFCs) ,其中包括了句子间的 `foo 、 `bar 或 `foobar 等变数没有任何

2007-05-31 16:48:00 18985 2

转载 linux下C编程详解

linux操作系统下c语言编程入门整理编写:007xiong原文:Hoyt等(一)目录介绍1)Linux程序设计入门--基础知识 2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门--时间概念 5)Linux程序设计入门--信号处理 6)Linux程序设计入门--消息管理 7)Linux程序设计入门--线程操作 8)Linux程序设计

2007-05-31 11:12:00 33383 3

转载 C中断的应用

摘要:本文主要介绍C语言中中断服务程序的编写、安装和使用。由于硬中断服务程序的编写涉及到硬件端口读写操作,使得用户直接和硬件打交道,在程序设计过程中要用到的数据(如硬件端口地址等)比较多,这就使程序员和计算机的硬件设备间缺少一种“缓冲”的作用,况且,用汇编语言来直接对硬件编程要方便得多。本文仅对软中断程序的编写作个介绍。关键词:软中断、中断向量、中断向量表、TSR内存驻留、DOS重入、中断请求、段

2007-05-29 12:58:00 4048

转载 C和汇编混合编程

.data是初始化的数据块。这些数据包括编译时被初始化的globle和static变量,也包括字符串。连接器将OBJs及LIBs文件的.data结合成一个大的.data。local变量以放在一个线性的堆栈中,不占.data和.bss的空间。和.text一样,数据块是以明文的形式存放在文件中的。无法防止对其物理的修改。.bss区是存放未初始化全局和静态变量的。 在C和汇编混合编程的时候,存在C语

2007-05-24 11:00:00 2457

原创 汇编hello world

看了这么多天了,终于可以写出一个,hello world 了,激动啊。;Date:2007.05.22 ;Author:sunyonggao;Description:在dos下显示一句话;入口参数: ah=09H ;ds:dx=待输出字符的地址 ;说明:待显示的字符串以’$’作为其结束标志 data segment    str db Hello,This is my first asm

2007-05-22 15:41:00 2861

转载 写汇编程序前的准备知识

做汇编程序的步骤:1.用编辑程序建立.asm源文件2.用masm程序把.asm文件转换成obj文件。3.用link程序把.obj文件装换成.exe文件或用exe2bin程序把.exe文件装换成.com文件。汇编语言源程序的结构源程序由段组成,每段有一个段名,segment定义段起点,ends定义段结束点。每段由若干语句行组成,源程序以end结束。 汇编语言源程序是段结构的:代码段、数据段、堆栈

2007-05-22 11:09:00 2022

转载 处理机控制类指令

用于任意设置进位标志CLC ;复位进位标志:CF←0STC ;置位进位标志:CF←1CMC ;求反进位标志:CF←~CF串操作指令中,需要使用CLD ;复位方向标志:DF←0STD ;置位方向标志:DF←1在编写中断服务程序时,需要控制可屏蔽中断的允许和禁止CLI ;复位中断标志:DF←0STI ;置位中断标志:DF←1NOP不执行任何操作,但占用一个字节存储单元,空耗一个指令执行周期

2007-05-20 17:37:00 2502

转载 子程序调用和中断指令

子程序的调用及返回指令1.调用call dst;调用的时候ip或eip压栈将机器执行的当前值(即call指令的下一条指令的地址)压入堆栈以便子程序返回用。2.返回ret返回时ip出栈带参数的返回指令 ret NN是一个16位的常数(偶数),该指令是将返回地址弹入ip或eip后在执行sp/esp+N -->sp/esp.该指令允许返回地址出栈后修改堆栈的指针,这便于调用子程序以前把子程序所需要的

2007-05-20 17:25:00 7469

转载 跳转指令和循环指令详解

跳转指令 Jxx指令不影响标志,但要利用标志(下表)。根据利用的标志位不同,17条指令分成4种情况: ⑴  判断单个标志位状态 ⑵  比较无符号数高低 ⑶  比较有符号数大小 ⑷  判断计数器CX为0有符号数的大(Greater)小(Less)需要组合OF、SF标志,并利用ZF标志确定相等(Equal)两数的大小分成4种关系:⑴ 小于(不大于等于):JL(JNGE)⑵ 不小于(大于等于

2007-05-20 12:15:00 3961

转载 移位和循环指令

 逻辑左移一位相当于无符号数乘以2 逻辑右移一位相当于无符号数除以2  1)算术移位 当乘数或除数是2n时,算术移位用来快速地完成对整数进行乘法或除法的运算。算数左移n位相当于乘上2n,执行方法是把原来的数中每一位都向左移动n个位置,左面移出的高位丢弃不要,右面低位空出的位置上全部补0。 2)逻辑移位 逻辑左移n位的执行方法,是把原来的数中每一位都向左移动n个位置,左面移出的高位丢弃不要,右面低位

2007-05-20 11:20:00 4033

转载 串操作指令

串操作指令能对存贮区中一块(串)字节或字进行操作,其块的长度可达64K字节,任一个这样的基本操作指令前还能用一个重复前缀使它们重复地操作。 重复执行串操作指令(由CX控制次数) ,实现串操作。    注意:所有的基本串操作指令都约定:源串用寄存器SI进行寻址,在无超越前缀时,段地址取自于数据段寄存器DS;目的串则用寄存器DI进行寻址,其段地址总是取自于附加段寄存器ES中。 串操作指令在每一次操作之

2007-05-19 21:00:00 4131

转载 汇编指令之算术指令

算术指令    IBMPC机的算术运算指令包括二进制运算及十进制运算指令。算术指令用来执行算术运算,它们中有双操作数指令,也有单操作数指令。如前所述,双操作数指令的两个操作数中除源操作数为立即数的情况外,必须有一个操作数在寄存器中。单操作数指令不允许使用立即数方式。算术指令的寻址方式,均遵循这两个规则。(一)加法指令ADD     加法ADC     带进位加法INC      加11.ADD

2007-05-18 20:52:00 3580

转载 汇编语言指令系统

1.mov在上篇文章中已经介绍2.PUSH和PoP指令都必须根据当前SP的内容来确定进栈或出栈的存储单元,而且必须及时修改指针,以保证(SP)指向当前的栈顶。(1) 堆栈的存取必须以字为单位,(IBM PC中不允许字节堆栈),所以PUSH和POP指令只能作字操作。(2) 它们可以使用初立即数以外的其他寻址方式。(3) 指令也可以指定段寄存器作为操作数,注意POP绝对不能使用代码段(CS)寄存器

2007-05-18 20:11:00 3048

转载 mov指令详解

 MOV指令可以在CPU内或CPU和存储器之间传送字或字节,它传送的信息可以从寄存器到寄存器,立即数到寄存器,立即数到存储单元,从存储单元到寄存器,从寄存器到存储单元,从寄存器或存储单元到除CS外的段寄存器(注意立即数不能直接送段寄存器),从段寄存器到寄存器或存储单元。      但是注意(1)      MOV指令中的源操作数绝对不能是立即数和代码段CS寄存器;(2)     

2007-05-18 19:31:00 39816 1

原创 IBM PC机的机器语言指令

IBM PC机的机器语言指令是多字节指令,一条指令可以由1—7个字节组成。指令的操作码(用OP表示)采用二进制代码表示本指令所执行的操作,在IBMPC机中,它通常用指令的第一个字节表示,有时由于用8位还不够,因此在指令的第二个字节中还可能占有3位操作码,除此以外的其他字节则用来表示地址码。在多数操作码中,常使用某些位来指示某些信息。例如   ----------------------  

2007-05-18 18:31:00 2307

原创 与转移地址有关的寻址方式

1.如何确定当前要执行指令在内存中的位置    IP:instruction pointer.指令指针寄存器。IP寄存器是CPU内部的一个寄存器,用来存储将要执行的下一条指令的偏移量。     CS:Code Segment.代码段寄存器。CS也是CPU内部的一个寄存器,用来存放当前程序代码段的地址。 这里涉及到8086处理器的寻址方式,即 段:偏移量 寻址方式。一条指令(数据)再

2007-05-18 12:59:00 6934

原创 汇编里 PTR 用法

MOV   AX,[BX]为什么要用WORD  PTR? mov   ax,bx   ;是把BX寄存器“里”的值赋予AX,由于二者都是word型,所以没有必要加“WORD”   mov   ax,[bx];是把内存地址等于“BX寄存器的值”的地方所存放的数据,赋予ax。由于只是给出一个内存地址,不知道希望赋予ax的,是byte还是word,所以需要用word明确指出!

2007-05-18 12:37:00 3935 3

转载 汇编 寻址方式总结

1. 立即寻址立即寻址方式用来表示常数,它主要用于给寄存器赋初值,注意:只能用于源操作数字段,不能用于目的操作数字段。例1            MOV    AL,5 2.直接寻址在IBM PC机中将操作数的偏移地址称为有效地址EA。在直接寻址方式中有效地址EA就在指令中,它存放在代码段中指令操作码之后,但操作数一般存放在数据段中,所以必须先求出操作数的物理地址,然后再访

2007-05-17 20:55:00 9995 4

原创 C链表 插入排序的实现

/********************************************************************* File Name  : insert_sort.c          ** Created   : 2007/05/08                                            ** Author   :    S

2007-05-17 13:07:00 7048

原创 C语言双向链表 快速排序

/********************************************************************* File Name  : quick_sort.c                                                                 ** Created   : 2007/05/08

2007-05-17 13:06:00 15183 5

转载 指针以及指针做参数的问题

一‘指针的定义指针是一种地址变量,通常也叫指针变量,统称指针。而地址则是地址变量的值指针绝对不是地址,千万不要把意义给混淆了。指针的大小就是4个字节 32位 指针里存放的是地址 他本身放在符号表中。实际上地址就是一种基本数据类型,它应该跟整形,字符,浮点是一样的 。■指针只是存储地址类型的变量,它不是数据类型。 由于数组名是一个符号常量,因此它是一个右值, 而指针作为变量它是一个左值

2007-05-07 11:27:00 2974

转载 再谈C指针

1.指针是一个保存对象地址的变量。这里要注意的是,指针跟地址概念的不同,指针是一种地址变量,通常也叫指针变量,统称指针。而地址则是地址变量的值。2.对一个一般类型的地址进行sizeof运算,结果是4个字节,而a[0]由于代表了一个数组,sizeof(a[0])的结果是整个数组的长度8x9xsizeof(int),并非4个字节。具有数组类型的地址跟数组名一样都是一个符号地址常量,因此它必定是一个

2007-05-07 11:25:00 1184

转载 C中相关的错误处理

1.assert的使用对于内部使用的函数,通常可以用断言,而对于提供给外部使用的函数,最好使用错误处理。只有在生成DEBUG码时ASSERT()才起作用. 在生成Release码时编译器会跳过ASSERT(). 如果在程序开始加入代码:# define  NDEBUG 则该程序中的assert函数全部失效,不必逐一删除。 断言是一个包含布尔表达式的语句,在执行这个语句时假定该表达式为

2007-05-07 11:19:00 946

转载 关于表达式 运算溢出等问题

ALU的构造决定了它只能进行二元运算。那么一个复杂的表达式如何处理?只好按优先级和结合性一点一点地做。这就产生了“中间结果”,暂存在哪里?只有内存。内存里会有一些无名的、占一定空间的、短命的变量存在,它们稍纵即逝,由系统来管理。它们就叫做表达式的值。表达式的值的特点用于临时存放计算结果,如同变量;任何表达式都有值;表达式的值都没有名字;它们是短命的 —— 语句结束(;)即被自动释放;它们被

2007-05-07 11:16:00 3430

转载 显-隐式转换问题

C++虽然是强类型语言,但是却还不如Java、C#那么足够的强类型,原因是允许的隐式转换太多从C语言继承下来的基本类型之间的隐式转换 T*指针到void*的隐式转换 non-explicit constructor 接受一个参数的隐式转换 从子类到基类的隐式转换(安全) 从const到non-const的同类型的隐式转换(安全)除开上面的五种隐式转换外,C++的编译器还非常聪明,当没法直接隐式

2007-05-07 11:11:00 1165

转载 typedef用法的几点介绍

typedef  char * pstr; int mystrcmp(const pstr, const pstr);       我们希望表达的是int mystrcmp( const char*, const char* )2个指向常量 char的指针可它被解释后的实际表达式变成了:int mystrcmp( char* const, char* const )  2个指向char的常量指

2007-05-07 11:03:00 983

转载 函数指针在表驱动方法中的应用举例

/*函数指针在表驱动方法中的应用 举例*/#include typedef struct  { int id; void (*func)(void);}funcTable;void func1(){ printf("func1/n");}void func2(){ printf("func2/n");}void main(){ funcTable tab[2] = {{1,fu

2007-05-07 10:59:00 2672

转载 表驱动法介绍

函数指针的使用其实是很灵活的,它有很多技巧性很高的应用,在表驱动方法中的应用很典型,这里着重介绍一下。1 什么是表驱动方法表是几乎所有数据结构课本都要讨论的非常有用的数据结构。表驱动方法出于特定的目的来使用表,下面将对此进行讨论。程序员们经常谈到"表驱动"方法,但是课本中却从未提到过什么是"表驱动"方法。表驱动方法是一种使你可以在表中查找信息,而不必用很多的逻辑语句(if或Case)来把它们找出来

2007-05-07 10:50:00 10944 4

uCOS-II

Micrium-uCOS-II-V286<br>0分分享 共同学习

2008-07-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除