博文

再说汇编(2005-07-10 21:32:00)

摘要:汇编语言和CPU以及内存,端口等硬件知识是连在一起的. 这也是为什么汇编语言没有通用性的原因. 下面简单讲讲基本知识(针对INTEL x86及其兼容机) ============================ x86汇编语言的指令,其操作对象是CPU上的寄存器,系统内存,或者立即数. 有些指令表面上没有操作数, 或者看上去缺少操作数, 其实该指令有内定的操作对象, 比如push指令, 一定是对SS:ESP指定的内存操作, 而cdq的操作对象一定是eax / edx. 在汇编语言中,寄存器用名字来访问. CPU 寄存器有好几类, 分别有不同的用处: 1. 通用寄存器: EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESP(这个虽然通用,但很少被用做除了堆栈指针外的用途) 这些32位可以被用作多种用途,但每一个都有"专长". EAX 是"累加器"(accumulator), 它是很多加法乘法指令的缺省寄存器. EBX 是"基地址"(base)寄存器, 在内存寻址时存放基地址. ECX 是计数器(counter), 是重复(REP)前缀指令和LOOP指令的内定计数器. EDX是...(忘了..哈哈)但它总是被用来放整数除法产生的余数. 这4个寄存器的低16位可以被单独访问,分别用AX,BX,CX和DX. AX又可以单独访问低8位(AL)和高8位(AH), BX,CX,DX也类似. 函数的返回值经常被放在EAX中. ESI/EDI分别叫做"源/目标索引寄存器"(source/destination index),因为在很多字符串操作指令中, DS:ESI指向源串,而ES:EDI指向目标串. EBP是"基址指针"(BASE POINTER), 它最经常被用作高级语言函数调用的"框架指针"(frame pointer). 在破解的时候,经常可以看见一个标准的函数起始代码: push ebp ;保存当前ebp mov ebp,esp ;EBP设为当前堆栈指针 sub esp, xxx ;预留xxx字节给函数临时变量. ... 这样一来,EBP 构成了该函数的一个框架, 在EBP上方分别是原来的EBP, 返回地址......

阅读全文(3153) | 评论:0

主题:汇编语言的准备知识(2)    (2005-07-10 21:31:00)

摘要:主题:汇编语言的准备知识(2)       汇编语言的准备知识--给初次接触汇编者(2) 汇编指令的操作数可以是内存中的数据, 如何让程序从内存中正确取得所需要的数据就是对内存的寻址. INTEL 的CPU 可以工作在两种寻址模式:实模式和保护模式. 前者已经过时,就不讲了, WINDOWS 现在是32位保护模式的系统, PE 文件就基本是运行在一个32位线性地址空间, 所以这里就只介绍32位线性空间的寻址方式. 其实线性地址的概念是很直观的, 就想象一系列字节排成一长队,第一个字节编号为0, 第二个编号位1, .... 一直到4294967295(十六进制FFFFFFFF,这是32位二进制数所能表达的最大值了). 这已经有4GB的容量! 足够容纳一个程序所有的代码和数据. 当然, 这并不表示你的机器有那么多内存. 物理内存的管理和分配是很复杂的内容, 初学者不必在意, 总之, 从程序本身的角度看, 就好象是在那么大的内存中. 在INTEL系统中, 内存地址总是由"段选择符:有效地址"的方式给出.段选择符(SELECTOR)存放在某一个段寄存器中, 有效地址则可由不同的方式给出. 段选择符通过检索段描述符确定段的起始地址, 长度(又称段限制), 粒度, 存取权限, 访问性质等. 先不用深究这些, 只要知道段选择符可以确定段的性质就行了. 一旦由选择符确定了段, 有效地址相对于段的基地址开始算. 比如由选择符1A7选择的数据段, 其基地址是400000, 把1A7 装入DS中, 就确定使用该数据段. DS:0 就指向线性地址400000. DS:1F5278 就指向线性地址5E5278. 我们在一般情况下, 看不到也不需要看到段的起始地址, 只需要关心在该段中的有效地址就行了. 在32位系统中, 有效地址也是由32位数字表示, 就是说, 只要有一个段就足以涵盖4GB线性地址空间, 为什么还要有不同的段选择符呢? 正如前面所说的, 这是为了对数据进行不同性质的访问. 非法的访问将产生异常中断, 而这正是保护模式的核心内容, 是构造优先级和多任务系统的基础. 这里有涉及到很多深层的东西, 初学者先可不必理会. 有效地址的计算方式是: 基址+间址*比例因子+偏移量. 这些量都是指段内的相对于段起始地址的量度, 和段的起始地址没......

阅读全文(2720) | 评论:0

主题:汇编语言的准备知识(1)  (2005-07-10 21:30:00)

摘要:主题:汇编语言的准备知识(1)       汇编语言和CPU以及内存,端口等硬件知识是连在一起的. 这也是为什么汇编语言没有通用性的原因. 下面简单讲讲基本知识(针对INTEL x86及其兼容机) ============================ x86汇编语言的指令,其操作对象是CPU上的寄存器,系统内存,或者立即数. 有些指令表面上没有操作数, 或者看上去缺少操作数, 其实该指令有内定的操作对象, 比如push指令, 一定是对SS:ESP指定的内存操作, 而cdq的操作对象一定是eax / edx. 在汇编语言中,寄存器用名字来访问. CPU 寄存器有好几类, 分别有不同的用处: 1. 通用寄存器: EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESP(这个虽然通用,但很少被用做除了堆栈指针外的用途) 这些32位可以被用作多种用途,但每一个都有"专长". EAX 是"累加器"(accumulator), 它是很多加法乘法指令的缺省寄存器. EBX 是"基地址"(base)寄存器, 在内存寻址时存放基地址. ECX 是计数器(counter), 是重复(REP)前缀指令和LOOP指令的内定计数器. EDX是...(忘了..哈哈)但它总是被用来放整数除法产生的余数. 这4个寄存器的低16位可以被单独访问,分别用AX,BX,CX和DX. AX又可以单独访问低8位(AL)和高8位(AH), BX,CX,DX也类似. 函数的返回值经常被放在EAX中. ESI/EDI分别叫做"源/目标索引寄存器"(source/destination index),因为在很多字符串操作指令中, DS:ESI指向源串,而ES:EDI指向目标串. EBP是"基址指针"(BASE POINTER), 它最经常被用作高级语言函数调用的"框架指针"(frame pointer). 在破解的时候,经常可以看见一个标准的函数起始代码: push ebp ;保存当前ebp mov ebp,esp ;EBP设为当前堆栈指针 sub esp, xxx ;预留xxx字节给函数临时变量. ... 这样一来,EBP 构成了该函数的一......

阅读全文(2570) | 评论:0

电子设计大赛评奖(2005-07-08 13:55:00)

摘要:竞赛评奖 全国大学生电子设计竞赛采取“一次竞赛、两级评奖”方式,评奖等级分为“赛区奖”和“全国奖”两种形式。 1、各赛区负责本赛区的评奖工作,赛区奖的评奖等级及各奖项获奖比例由各赛区根据实际情况自行确定。 2、赛区评审结束后,各赛区组委会将本赛区竞赛优秀参赛队的设计报告及有关评审材料报送全国组委会,报送的优秀参赛队数应严格控制在本赛区参赛队总数的12%之内。全国组委会根据全国专家组的评审结果确定全国一、二等奖,获奖总数原则上不超过全国参赛队总数的10%。 3、全国大学生电子设计竞赛设立“赛区优秀组织奖”,对当年竞赛组织中表现出色的赛区组委会给予表彰奖励;同时设立“优秀征题奖”,对当年竞赛征题工作中表现突出的个人给予表彰奖励。......

阅读全文(3185) | 评论:0

电子设计大赛内容与要求(2005-07-08 13:55:00)

摘要:全国大学生电子设计竞赛 - 内容与要求 竞赛内容 l、以电子电路(含模拟和数字电路)应用设计为主要内容,可以涉及模-数混合电路、单片机、可编程器件、EDA软件工具和PC机(主要用于开发)的应用。题目包括“理论设计”和“实际制作与调试”两部分。竞赛题目应具有实际意义和应用背景,并考虑到目前教学的基本内容和新技术的应用趋势,同时对教学内容和课程体系改革起一定的引导作用。 2、题目着重考核学生综合运用基础知识进行理论设计的能力,考核学生的创新精神和独立工作能力,考核学生的实验技能(制作、调试)。 3、题目在难易程度方面,既要考虑使一般参赛学生能在规定的时间内完成基本要求,又能使优秀学生有发挥与创新的余地。 ......

阅读全文(3584) | 评论:0

电子设计大赛规则(2005-07-08 13:54:00)

摘要:竞赛规则 l、参赛学生应是高等学校中具有正式学籍的全日制在校本科或专科学生。 2、参赛学生必须按统一时间参加竞赛,按时开赛,准时交卷。各赛区组委会须按时收回学生的答卷(报告和制作实物)并及时封存,然后按规定交赛区专家组评审。 3、竞赛期间,参赛学生可以使用各种图书资料和计算机,但不得与队外人员讨论,教师必须回避。 4、竞赛期间,各赛区组委会要组织巡视检查,以保证竞赛活动正常进行。 5、在竞赛中,如发现辅导教师参与、队与队之间讨论,队员与队外人员讨论、不按规定时间发题和收卷,以及赛前泄题等违纪现象,将取消获奖名次,并通报批评。......

阅读全文(2874) | 评论:0

电子设计大赛章程(2005-07-08 13:53:00)

摘要:一、总则   1.指导思想与目的   全国大学生电子设计竞赛是教育部倡导的四大学科竞赛之一,是面向大学生的群众性科技活动,目的在于推动全国普通高等学校促进信息与电子类学科面向二十一世纪课程体系和课程内容的改革,促进教育也要实现两个转变重要思想的落实,有助于高等学校实施素质教育,培养大学生的创新能力、协作精神和理论联系实际的学风;有助于学生工程实践素质的培养、提高学生针对实际问题进行电子设计制作的能力;有助于吸引、鼓励广大青年学生踊跃参加课外科技活动,为优秀人才的脱颖而出创造条件。   2.竞赛特点与特色   全国大学生电子设计竞赛努力与课程体系和课程内容改革密切结合,与培养学生全面素质紧密结合,与理论联系实际学风建设紧密结合。竞赛内容既有理论设计,又有实际制作,可以全面检验和促进参赛学生的理论素养和工作能力。   3.组织运行模式   全国大学生电子设计竞赛的组织运行模式为:“政府主办、专家主导、学生主体、社会参与”十六字方针,以充分调动各方面的参与积极性。 二、组织领导   4.领导   由教育部高等教育司及信息产业部人事司负责领导全国竞赛工作,各地竞赛事宜由地方教委(厅、局)统一领导。为保证竞赛顺利开展,组建全国及各赛区竞赛组织委员会和专家组。   5.组织委员会   (1)教育部教高司函[1999]41号文件公布了第二届全国大学生电子设计竞赛组织委员会组成名单,任期四年,1999年全国大学生电子设计竞赛的各项事宜委托本届组委会具体组织。本届全国组委会由教育部、信息产业部、部分参赛省市教委代表及有关电子类专家组成,负责全国竞赛的组织领导工作。 全国组委会设立秘书处,设秘书长一人,副秘书长若干人,主持全国大学生电子设计竞赛的日常工作。   (2)各赛区竞赛组委会由省、市、自治区教委(厅、局)、高校代表及电子类专家、企事业代表组成,负责本赛区的竞赛组织领导工作。   (3)原则上以省(市、自治区)独立组成一个赛区。若参赛学校少于3所或参赛队少于20个队时,可与邻近省市联合组成一个赛区。   6.专家组   (1)全国专家组由部分高校电子类专家组成,负责全国竞赛的命题、评审工作。   (2)各赛区成立赛区专家组,由赛区内电子类专家组成,负责赛区征题、评审工作。   7.参赛单位   以普通高等学校为参赛单位,参赛学校应成立电子竞赛工作领导小组,负责本校学生的参赛事宜......

阅读全文(3307) | 评论:1

我的一些信息(2005-07-07 13:36:00)

摘要:msn:www.spaces.msn.com/members/lch-spriver qq:327529671 email:sdwhlch@163.com......

阅读全文(1830) | 评论:0

我的blog 开张了(2005-06-08 22:34:00)

摘要:开张了 欢迎大家多多指教 多多提意见......

阅读全文(2143) | 评论:0