《计算机组成原理 第1章.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理 第1章.ppt(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、IBMIBMPCPC汇编语言汇编语言程序设计程序设计(第第2 2版版)清华大学计算机系列教材清华大学计算机系列教材 沈美名沈美名 温冬蝉温冬蝉 编著编著1主讲:主讲:祝永志祝永志 教授教授 硕士生导师硕士生导师QQ-147487639MOBILE-1876936276823计算机CPU简介o1979年,英特尔公司又开发出了8088。8086和8088在芯片内部均采用16位数据传输,所以都称为16位微处理器。o而8088的外部8位数据传送,8088采用40针的DIP封装,工作频率为6.66MHz、7.16MHz或8MHz,微处理器集成了大约29000个晶体管。o80186和80188。这两款微处
2、理器内部均以16位工作,在外部输入输出上80186采用16位,而80188和8088一样是采用8位工作。o1981 年,美国 IBM 公司将 8088 芯片用于其研制的 PC 机中,从而开创了全新的微机时代。o1982年,英特尔公司在8086的基础上,研制出了80286微处理器,该微处理器的最大主频为 20MHz,内、外部数据传输均为16位,使用24位内存储器的寻址,内存寻址能力为16MB。o80386、80486、PI、PII、PIII、P46计算机语言的发展计算机语言的发展 机器语言机器语言FORTRANFORTRANBASICBASICCOBOLCOBOLPASCALPASCALC/C+
3、C/C+JAVAJAVA.汇编语言汇编语言高级语言高级语言78汇编语言的特点汇编语言的特点 面向机器的低级语言,通常是为特定的计算面向机器的低级语言,通常是为特定的计算 机或计算机系列机或计算机系列专门设计的。专门设计的。保持了机器语言的优点,具有直接和简捷保持了机器语言的优点,具有直接和简捷 的特点。的特点。可有效地访问、控制计算机的各种硬件设备可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、如磁盘、存储器、CPUCPU、I/OI/O端口等。端口等。目标代码简短目标代码简短,占用内存少,执行速度快,占用内存少,执行速度快,是高效的程序设计语言。是高效的程序设计语言。经常与高级语言配合
4、使用,应用十分广泛经常与高级语言配合使用,应用十分广泛。910#include stdafx.h#include stdio.h int main(int argc,char*argv)int a,b,c;a=1;b=2;c=a+b;printf(“c=%dn,c);return 0;编程实现编程实现编程实现编程实现 c=a+bc=a+bc=a+bc=a+b,并在屏幕上显示出结果,并在屏幕上显示出结果,并在屏幕上显示出结果,并在屏幕上显示出结果。例例例例1 1编译后的目标文编译后的目标文件达到件达到3.59KB11data segmentdata segmenta db?a db?b db?b
5、 db?c db?c db?string db c=$string db c=$data endsdata endscode segmentcode segmentmain proc farmain proc far assume cs:code,assume cs:code,ds:data,es:datads:data,es:datastart:start:push dspush ds sub ax,ax sub ax,ax push ax push ax mov ax,datamov ax,data mov ds,ax mov ds,ax mov es,ax mov es,ax mov a
6、,1mov a,1 mov b,2 mov b,2 mov al,a mov al,a add al,b add al,b mov c,al mov c,al lea dx,stringlea dx,string mov ah,09 mov ah,09 int 21h int 21h add c,30hadd c,30h mov dl,c mov dl,c mov ah,2 mov ah,2 int 21h int 21h mov dl,0ah mov dl,0ah int 21h int 21h mov dl,0dh mov dl,0dh int 21h int 21h ret retmai
7、n endpmain endpcode endscode ends end startend start例例 2.C=a+b2.C=a+b汇编后的目汇编后的目标文件只有标文件只有208208字节字节12汇编语言的应用汇编语言的应用系统程序、效率代码、系统程序、效率代码、I/OI/O驱动程序驱动程序 70%70%以上的系统软件是用汇编语言编写的。以上的系统软件是用汇编语言编写的。某些快速处理、位处理、访问硬件设备等某些快速处理、位处理、访问硬件设备等 高效程序是用汇编语言编写的。高效程序是用汇编语言编写的。高级绘图程序、视频游戏程序一般是用汇高级绘图程序、视频游戏程序一般是用汇 编语言编写的编语
8、言编写的。13学习建议学习建议目标:目标:了解汇编语言的特性及其编程技术,了解汇编语言的特性及其编程技术,建立起建立起“机器机器”和和“程序程序”、“空间空间”和和“时间时间”的概念。的概念。建议:建议:充分注意充分注意“汇编汇编”课实践性强的特点,课实践性强的特点,多读程序多读程序,多写程序多写程序,多上机调试程序多上机调试程序,熟悉熟悉PCPC机的编程结构,机的编程结构,掌握汇编语言及其程序设计的基本概掌握汇编语言及其程序设计的基本概 念、方法和技巧念、方法和技巧。14参考资料参考资料1.80X861.80X86汇编语言程序设计汇编语言程序设计沈美明沈美明 温冬婵温冬婵 清华大学出版社清华
9、大学出版社2.IBM PC 2.IBM PC 汇编语言与程序设计汇编语言与程序设计 PETER ABEL PETER ABEL 编著编著 第第4 4版版 清华大学出版社清华大学出版社.PRENTICE HALL.PRENTICE HALL第第5 5版版 人民邮电出版社人民邮电出版社3.IBM PC 3.IBM PC 汇编语言与程序设计例题习题集汇编语言与程序设计例题习题集 温冬婵温冬婵 沈美明沈美明 清华大学出版社清华大学出版社15教学内容:教学内容:第一部分第一部分 绪论绪论 数制数制 数制之间的转换数制之间的转换 数和字符的表示数和字符的表示 运算运算第二部分第二部分 计算机组织计算机组织
10、 CPU CPU 存储器存储器 外部设备外部设备 寻址方式寻址方式第三部分第三部分 指令系统(指令系统(1 1)第四部分第四部分 指令系统(指令系统(2 2)BIOSBIOS和和DOSDOS调用调用 第五部分第五部分 上机过程上机过程 完整段定义和简化段定义格式完整段定义和简化段定义格式 伪操作伪操作第六部分第六部分 循环与分支程序设计循环与分支程序设计 子程序结构子程序结构 第七部分第七部分 高级汇编语言技术高级汇编语言技术 I/OI/O程序设计程序设计 第八部分第八部分 中断程序设计中断程序设计 复习复习16第第1章章 基基 础础 知知 识识 数制数制-二、八、十、十六进制二、八、十、十六
11、进制 数制之间的转换数制之间的转换 运算运算-二、十六二、十六 数和字符的表示数和字符的表示-机器数、机器数、ASCII码码17o目前计算机中用得最广泛的字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII码(American Standard Code for Information Interchange,美国标准信息交换码),它已被国际标准化组织(ISO)定为国际标准。o不论是数值数据还是文字、图形等,在计算机内部都采用了一种编码标准。通过编码标准可以把它转换成二进制数来进行处理,计算机将这些信息处理完毕再转换成可视的信息显示出来。oASCII码由8位二进制数组成,其中最高位为
12、校验位,用于传输过程检验数据正确性。其余7位二进制数表示一个字符,共有128种组合。18预预 备备 知知 识识存储容量存储容量1K =1024 =210 (Kilo)1M=1024K =220 (Mega)1G =1024M=230 (Giga)TPEZY1个二进制位:bit (比特)8个二进制位:Byte (字节)1Byte=8bit2个字节:Word(字)1Word=2Byte=16bit1920下面的展示了下面的展示了这些些单位之位之间的的换算关系算关系 单位全称 缩写 换算 Kilo K 1K字节=1.024个字节 Mega M 1M字节=1.048.576字节 Giga G 1G字节
13、=1.073.741.824字节 Tera T 1T字节=1.099511.627.776字节-万亿 Peta P 1P字节=1.125.899.906.842.624字节-千万亿Exa E 1E字节=1.152.921.504.606.846.976字节 Zetta Z 1Z字节=1.180.591.620.717.411.303.424字节 Yotta Y 1Y字节=1.208.925.819.614.629.174.706.176字节 21221.数数 制制 数数 制制 基基 数数 数数 码码 二进制二进制 Binary 2 0,1 八进制八进制 Octal-Q 8 0,1,2,3,4,
14、5,6,7 十进制十进制 Decimal 10 0,1,2,3,4,5,6,7,8,9 十六进制十六进制 Hexadecimal 16 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F二进制二进制:基数为2,逢二进一 11012 =12 3 +12 2 +12 0 =1310十六进制十六进制:基数为16,逢十六进一 1001,0001,1000,0111 9 1 8 7 =9 16 3 +1 16 2 +8 16 1 +7 16 023可省2.数制之间的转换数制之间的转换 二进制二进制 十六进制十六进制 十进制十进制 二进制二进制 十进制十进制 十六进制十六进制降幂法降幂法 除法
15、除法24 二进制二进制 十六进制十六进制 0011 0101 1011 1111 3 5 B F 0011,0101,1011,1111B=35BFH A 1 9 C 1010 0001 1001 1100 A19CH=1010,0001,1001,1100B25 1011B =23+21+20=11D 按权展开 降幂法 除法 例例:25D=?B 25 9 1 1 1 -2n 16 8 4 2 1 1 1 0 0 1 25D=11001B 二进制二进制 十进制十进制262728 十六进制十六进制 十进制十进制-同理同理 BF3CH=11163+15162+3161+12160 =48956D
16、降幂法 除法 例例:399D=?H 399 143 15 399/1624/161/16 0 -16n 256 16 1 F 8 1 1 8 F 399D=18FH29 算术运算算术运算 二进制数:二进制数:逢二进一逢二进一 借一为二借一为二 加法规则 乘法规则 0+0=0 0 0=0 0+1=1 0 1=0 1+0=1 1 0=0 1+1=0(进位1)1 1=13.运算(算术运算和逻辑运算)运算(算术运算和逻辑运算)300 5 C 3 H3 D 2 5 H4 2 E 8 H3 D 2 5 H0 5 C 3 H3 7 6 2 H1 11 1十六进制数:十六进制数:逢十六进一逢十六进一 借一为十
17、六借一为十六31 逻辑运算(逻辑运算(按位操作按位操作)“与与”运算(运算(AND)“或或”运算(运算(OR)A B AB A B AB 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1“异或异或”运算(运算(XOR)A A A B AB 0 1 0 0 0 1 0 0 1 1 1 0 1 1 1 032“非非”运算运算(NOT)33与0异或不变。与1异或取相反X的非-法234数的常用表示法数的常用表示法 原码原码 反码反码 补码补码原码表示法原码表示法:符号:符号+绝对值绝对值例:n=8bit +3原码 =0 000,0011 =03H -3原码
18、 =1 000,0011 =83H +0原码 =0 000,0000 =00H -0原码 =1 000,0000 =80H 0 的表示不唯一反码表示法反码表示法:正数的反码同原码,负数的反码数值位与原码相反正数的反码同原码,负数的反码数值位与原码相反例:n=8bit +5反码 =0 000,0101 =05H -5反码 =1 111,1010 =FAH +0反码 =0 000,0000 =00H -0反码 =1 111,1111 =FFH 0 的表示不唯一35例:机器字长8位,-46补码 =?46补码 =0 0 1 0 1 1 1 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1
19、 0 =D2H 机器字长16位,-46补码 =FFD2H +0补码 =0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 =-0补码 0 的表示的表示惟一按位求反按位求反末位加一末位加一按位求反按位求反末位加一末位加一补码补码(Twos Complement)表示法:表示法:正数的补码:正数的补码:同原码负数的补码负数的补码:(1)写出与该负数相对应的正数的补码 (2)按位求反 (3)末位加一36 十进制 二进制 十六进制 十进制 十六进制 n=8 n=16+127 0111 1111 7F +32767 7FFF+126 0111 1110 7E
20、+32766 7FFE.+2 0000 0010 02 +2 0002+1 0000 0001 01 +1 0001 0 0000 0000 00 0 0000 -1 1111 1111 FF -1 FFFF -2 1111 1110 FE -2 FFFE .-126 1000 0010 82 -32766 8002-127 1000 0001 81 -32767 8001-128 1000 0000 80 -32768 8000n位二进制补码的表数范围:位二进制补码的表数范围:-2n-1 N 2n-1-1无符号整数的表数范围:无符号整数的表数范围:0 N 2n-1 37补码的加法和减法:补码
21、的加法和减法:求补运算求补运算 :对一个二进制数按位求反、末位加一对一个二进制数按位求反、末位加一 X补码补码 -X补码补码 X补码补码加法规则加法规则:X+Y补码补码 =X补码补码 +Y补码补码减法规则减法规则:X-Y补码补码 =X补码补码 +-Y补码补码 补码减法可转换为补码加法补码减法可转换为补码加法 64(-46)180100 00001101 00100001 0010例:38进位和溢出进位和溢出进位进位:由于运算结果超出了位数由于运算结果超出了位数,最高有效位向最高有效位向 前的进位,这一位自然丢失,一般不表前的进位,这一位自然丢失,一般不表 示结果的对错。示结果的对错。溢出:溢出
22、:表示结果超出了字长允许表示的范围,表示结果超出了字长允许表示的范围,一般会造成结果出错。一般会造成结果出错。例:例:(64)11000000 127 01111111 64 01000000 +1 00000001 0 1 00000000 128 10000000 进位进位 溢出溢出39 字符的表示字符的表示ASCII码码:用一个字节字节来表示一个字符,低7位 为字符的ASCII值,最高位一般用作 校验位。例:例:A 41H a 61H 1 31H 换行换行(LF)0AH 回车回车(CR)0DH 空格空格(SP)20H 响铃响铃(BEL)07H40第第1章作业章作业 Page 14 1.11.841