网站大量收购独家精品文档,联系QQ:2885784924

C++程序设计精要教程全套教学课件.pptx

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

C++程序设计精要教程

◆1.1计算机的体系结构

运算器包括一组寄存器,用于运算

控制器控制指令流向及输入/输出设备

存储器用于存储二进制数据及指令

输入设备用于输入数据

输出设备用于输出数据

寄存器用于缓存数据,早期计算机用存储器代替。存储器称为内存,有RAM和ROM内存。有的设备既可以用作输入,也可以用作输出,例如磁盘设备;控制台由键盘及显示器构成。

第1章C++引论

第1章C++引论

数据与程序的存储方式:

□内存按字节编址,每个字节能存一个字符,一个整数占用多个字节。Windows分配内存的最小单位为节:1节=16字节。

□一个字节由8位二进制构成,二进制位没有地址。

□数据和指令均于二进制形式存于内存,数据可以当作指令看待,指令也可以当作数据看待,当指令计数器指向某个内存地址,自此地址开始的数据被当作指令执行。

□从键盘输入的字符,用ASCII码表示,可转换后存入内存,从内存输出数据也经常需要转换成ASCII,再输出到显示器等设备。

□字符’2’的ASCII码为50,与整数2的值不同,转换方法为2=‘2’-’0’。

□字母和数字的ASCII码是连续编码的;字母分大小写,ASCII码值不一样。

第1章C++引论

◆1.2进制及其转换和运算

□采用二进制原因:电路成本接近最经济、更稳定,位逻辑运算更易实现,可通过补码将减法用加法运算实现。

□C++采用的进制:C++整数可采用八进制、十进制、十六进制表示。

□二进制运算特点:二进制只有0、1两位数字;加法运算逢二进一;位运算包括移位、按位与、按位或、按位异或、按位求反;逻辑运算包括逻辑与、逻辑或、逻辑非等运算。

□二、十进制转换:十进制数转换为二进制数时,通过连续除于2完成,余数为转后得到的二进制数字;二进制数转换为十进制数时,通过连续将二进制高位数值乘以2加上低一位数字值得到。

□二、八进制转换:三位二进制数字可和一位八进制数字相互转换。

□二、十六进制转换:四位二进制数字可和一位十六进制数字相互转换。

第1章C++引论

二进制运算:

□按位与:对应二进制位都为1时结果为1,否则结果为0。

□按位或|:对应二进制位都为0时结果为0,否则结果为1。

□按位异或^:对应二进制位相同时结果为0,否则结果为1。

连续3个异或运算可交换两个变量x、y的值:x=x^y;y=x^y;x=x^y;

第1章C++引论

◆1.380X86系列汇编语言

□C++可编译为汇编程序:C++函数编译形成代码段CS,C++全局和静态变量编译形成数据段DS,C++函数参数和局部自动变量编译后存于栈段SS。

□C++函数返回的int值存储在通用寄存器EAX中,返回的double值存储在EAX+EDX中,返回的对象值则实现起来很复杂。

□C++函数的参数通过压栈完成传递,调用完成后实参的值出栈,保持函数调用前后栈指针的值不变或平衡。函数局部自动变量通过在栈上内存实现。

□C++的变量名和函数名编译为汇编程序的变量名和函数名时,编译结果通常包含变量、函数(包括参数和返回值)的类型信息。

□从C++程序编译得到的汇编程序在执行函数体前,通常会在栈上保存重要寄存器的值,返回前会从栈上出栈恢复这些重要寄存器的值,此类开销被称为调用开销。相对于编译得到的函数体汇编指令,调用开销有时较大。

第1章C++引论

80X86系列汇编指令

□汇编指令格式:操作码(位于低地址)-操作数(位于高地址)。注解用“;”。

□汇编指令分类:数据传输如MOV,栈操作如PUSH和POP,数据运算如INC、AND、SUB,判断转移如CMP和JNZ,以及调用返回如CALL即RET等指令。

□寄存器分类:段CS、DS、ES、SS,地址指针如ESI、EDI,ESP、EBP,数据如EAX、EBX、ECX、EDX,以及指令指针EIP和状态字如WSP等寄存器。

□数据传输指令:MOVEAX,0;将立即数0送至EAX寄存器MOVEBX,DOWRDPTR[EBP+8];

;保存EBP寄存器

;恢复EBP寄存器

;将4压入栈中,常用于传递函数参数

□栈操作指令:PUSHEBP;

POPEBP;PUSH4;

第1章C++引论

80X86系列汇编指令

□数据运算指令:DECEAX

文档评论(0)

165720323137e88 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档