清华大学计算机系列教材IBMPC汇编语言程序设计第课件

上传人:汽*** 文档编号:569499997 上传时间:2024-07-30 格式:PPT 页数:28 大小:1.16MB
返回 下载 相关 举报
清华大学计算机系列教材IBMPC汇编语言程序设计第课件_第1页
第1页 / 共28页
清华大学计算机系列教材IBMPC汇编语言程序设计第课件_第2页
第2页 / 共28页
清华大学计算机系列教材IBMPC汇编语言程序设计第课件_第3页
第3页 / 共28页
清华大学计算机系列教材IBMPC汇编语言程序设计第课件_第4页
第4页 / 共28页
清华大学计算机系列教材IBMPC汇编语言程序设计第课件_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《清华大学计算机系列教材IBMPC汇编语言程序设计第课件》由会员分享,可在线阅读,更多相关《清华大学计算机系列教材IBMPC汇编语言程序设计第课件(28页珍藏版)》请在金锄头文库上搜索。

1、IBMPCIBMPC汇编语言汇编语言程序设计程序设计( (第第2 2版版) )清华大学计算机系列教材清华大学计算机系列教材 沈美名沈美名 温冬蝉温冬蝉 编著编著清华大学计算机系列教材IBMPC汇编语言程序设计第计算机语言的发展计算机语言的发展 机器语言机器语言FORTRANFORTRANBASICBASICCOBOLCOBOLPASCALPASCALC/C+C/C+JAVAJAVA.汇编语言汇编语言高级语言高级语言清华大学计算机系列教材IBMPC汇编语言程序设计第汇编语言的特点汇编语言的特点 面向机器的低级语言,通常是为特定的计算面向机器的低级语言,通常是为特定的计算 机或计算机系列机或计算机

2、系列专门设计的。专门设计的。 保持了机器语言的优点,具有直接和简捷保持了机器语言的优点,具有直接和简捷 的特点。的特点。 可有效地访问、控制计算机的各种硬件设备可有效地访问、控制计算机的各种硬件设备, , 如磁盘、存储器、如磁盘、存储器、CPUCPU、I/OI/O端口等。端口等。 目标代码简短,占用内存少,执行速度快,目标代码简短,占用内存少,执行速度快, 是高效的程序设计语言。是高效的程序设计语言。 经常与高级语言配合使用,应用十分广泛经常与高级语言配合使用,应用十分广泛。清华大学计算机系列教材IBMPC汇编语言程序设计第 #include stdafx.h #include stdio.h

3、 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+b c =a+b c =a+b c =a+b,并在屏幕上显示出结果,并在屏幕上显示出结果,并在屏幕上显示出结果,并在屏幕上显示出结果。 例例例例1 1编译后的目标文编译后的目标文件达到件达到3.59KB清华大学计算机系列教材IBMPC汇编语言程序设计第data segmentdata segmenta db ?a db ?b db ?b db ?c db ?c db ?stri

4、ng 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,data mov ax,data mov ds,ax mov ds,ax mov es,ax mov es,ax mov a,1mov a,1 mo

5、v 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 retmain endpmain e

6、ndpcode endscode ends end startend start例例 2. C = a + b 2. C = a + b汇编后的目汇编后的目标文件只有标文件只有208208字节字节清华大学计算机系列教材IBMPC汇编语言程序设计第汇编语言的应用汇编语言的应用系统程序、效率代码、系统程序、效率代码、I/OI/O驱动程序驱动程序 70%70%以上的系统软件是用汇编语言编写的。以上的系统软件是用汇编语言编写的。 某些快速处理、位处理、访问硬件设备等某些快速处理、位处理、访问硬件设备等 高效程序是用汇编语言编写的。高效程序是用汇编语言编写的。 高级绘图程序、视频游戏程序一般是用汇高级绘

7、图程序、视频游戏程序一般是用汇 编语言编写的编语言编写的。清华大学计算机系列教材IBMPC汇编语言程序设计第教师建议教师建议目标:目标: 了解汇编语言的特性及其编程技术,了解汇编语言的特性及其编程技术, 建立起建立起“机器机器”和和“程序程序”、“空间空间”和和 “ “时间时间”的概念。的概念。建议:建议: 充分注意充分注意“汇编汇编”课实践性强的特点,课实践性强的特点, 多读程序多读程序, ,多写程序多写程序, ,多上机调试程序多上机调试程序, , 熟悉熟悉PCPC机的编程结构,机的编程结构, 掌握汇编语言及其程序设计的基本概掌握汇编语言及其程序设计的基本概 念、方法和技巧念、方法和技巧。清

8、华大学计算机系列教材IBMPC汇编语言程序设计第参考资料参考资料1.80X861.80X86汇编语言程序设计汇编语言程序设计沈美明沈美明 温冬婵温冬婵 清华大学出版社清华大学出版社2.IBM PC 2.IBM PC 汇编语言与程序设计汇编语言与程序设计 PETER ABEL PETER ABEL 编著编著 第第4 4版版 清华大学出版社清华大学出版社.PRENTICE HALL.PRENTICE HALL第第5 5版版 人民邮电出版社人民邮电出版社3. IBM PC 3. IBM PC 汇编语言与程序设计例题习题集汇编语言与程序设计例题习题集 温冬婵温冬婵 沈美明沈美明 清华大学出版社清华大学

9、出版社清华大学计算机系列教材IBMPC汇编语言程序设计第教学日历:教学日历:第一周第一周 绪论绪论 数制数制 数制之间的转换数制之间的转换 数和字符的表示数和字符的表示 运算运算第二周第二周 计算机组织计算机组织 CPU CPU 存储器存储器 外部设备外部设备 寻址方式寻址方式第三周第三周 指令系统(指令系统(1 1)第四周第四周 指令系统(指令系统(2 2) BIOS BIOS和和DOSDOS调用调用 第五周第五周 上机过程上机过程 完整段定义和简化段定义格式完整段定义和简化段定义格式 伪操作伪操作第六周第六周 循环与分支程序设计循环与分支程序设计 子程序结构子程序结构 第七周第七周 高级汇

10、编语言技术高级汇编语言技术 I/O I/O程序设计程序设计 第八周第八周 中断程序设计中断程序设计 复习复习清华大学计算机系列教材IBMPC汇编语言程序设计第第第1章章 基基 础础 知知 识识 数制数制 数制之间的转换数制之间的转换 运算运算 数和字符的表示数和字符的表示清华大学计算机系列教材IBMPC汇编语言程序设计第预预 备备 知知 识识存储容量存储容量1K = 1024 = 210 (Kilo) 1M = 1024K = 220 (Mega) 1G = 1024M = 230 (Giga)1个二进制位:bit (比特)8个二进制位:Byte (字节) 1Byte = 8bit2个字节:

11、Word (字) 1Word = 2Byte = 16bit清华大学计算机系列教材IBMPC汇编语言程序设计第1. 数数 制制 数数 制制 基基 数数 数数 码码 二进制二进制 Binary 2 0, 1 八进制八进制 Octal 8 0, 1, 2, 3, 4, 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

12、 0 = 1310十六进制十六进制:基数为16,逢十六进一 1001, 0001, 1000, 0111 9 1 8 7 = 9 16 3 + 1 16 2 + 8 16 1 + 7 16 0清华大学计算机系列教材IBMPC汇编语言程序设计第2. 数制之间的转换数制之间的转换 二进制二进制 十六进制十六进制 十进制十进制 二进制二进制 十进制十进制 十六进制十六进制降幂法降幂法 除法除法清华大学计算机系列教材IBMPC汇编语言程序设计第 二进制二进制 十六进制十六进制 0011 0101 1011 1111 3 5 B F 0011,0101,1011,1111B = 35BFH A 1 9

13、C 1010 0001 1001 1100 A19CH = 1010,0001,1001,1100B清华大学计算机系列教材IBMPC汇编语言程序设计第 1011B = 23+21+20=11D 降幂法 除法 例例: 27D = ? B 27 11 3 3 1 - - - - 2n 16 8 4 2 1 1 1 0 1 1 27D = 11011B 二进制二进制 十进制十进制清华大学计算机系列教材IBMPC汇编语言程序设计第 十六进制十六进制 十进制十进制 BF3CH = 11163 +15162 +3161 +12160 = 48956D 降幂法 除法 例例:399D = ? H 399 14

14、3 15 399/1624/161/16 0 - - - 16n 256 16 1 F 8 1 1 8 F 399D = 18FH清华大学计算机系列教材IBMPC汇编语言程序设计第 算术运算算术运算 二进制数:二进制数:逢二进一逢二进一 借一为二借一为二 加法规则 乘法规则 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. 运算(算术运算和逻辑运算)运算(算术运算和逻辑运算)清华大学计算机系列教材IBMPC汇编语言程序设计第0 5 C 3 H3 D 2 5 H4 2 E 8 H3 D

15、2 5 H0 5 C 3 H3 7 6 2 H1 11 1十六进制数:十六进制数:逢十六进一逢十六进一 借一为十六借一为十六清华大学计算机系列教材IBMPC汇编语言程序设计第 逻辑运算(逻辑运算(按位操作按位操作)“与与”运算(运算(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“非非”运运算算(NOT) “异或异或”运算(运算(XOR) A A A B AB 0 1 0 0 0 1 0 0 1 1 1 0 1 1 1 0清华大学计算机系列教材IBMPC汇编语言程序设计第例例:X=

16、00FFH Y=5555H,求Z=XY= ? X= 0000 0000 1111 1111 B Y= 0101 0101 0101 0101 B Z= 0101 0101 1010 1010 B Z=55AAH清华大学计算机系列教材IBMPC汇编语言程序设计第4. 数和字符的表示数和字符的表示 计算机中正负计算机中正负数的表示数的表示 7 6 5 4 3 2 1 0符号位符号位 数值位数值位假设机器字长字长为16位:符号位符号位 = 0 正数正数 数值位数值位 = 1 负数负数15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0假设机器字长字长为8位:H.O.ByteH.

17、O.ByteL.O.ByteL.O.ByteH.O.NibbleH.O.NibbleL.O.NibbleL.O.Nibble清华大学计算机系列教材IBMPC汇编语言程序设计第数的常用表示法数的常用表示法 原码原码 反码反码 补码补码原码表示法原码表示法:符号:符号 + 绝对值绝对值例:n = 8bit +3原码 = 0 000,0011 = 03H - 3原码 = 1 000,0011 = 83H +0原码 = 0 000,0000 = 00H - 0原码 = 1 000,0000 = 80H 0 的表示不惟一反码表示法反码表示法:正数的反码同原码,负数的反码数值位与原码相反正数的反码同原码,

18、负数的反码数值位与原码相反例:n = 8bit +5反码 = 0 000,0101 = 05H - 5反码 = 1 111,1010 = FAH +0反码 = 0 000,0000 = 00H - 0反码 = 1 111,1111 = FFH 0 的表示不惟一清华大学计算机系列教材IBMPC汇编语言程序设计第例: 机器字长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 0 = D2H 机器字长16位,- 46补码 = FFD2H +0补码 = 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0

19、 0 0 0 0 0 0 0 = - 0补码 0 的表示的表示惟一按位求反按位求反末位加一末位加一按位求反按位求反末位加一末位加一补码补码(Twos Complement)表示法:表示法:正数的补码:正数的补码: 同原码负数的补码负数的补码:(1)写出与该负数相对应的正数的补码 (2)按位求反 (3)末位加一清华大学计算机系列教材IBMPC汇编语言程序设计第 十进制 二进制 十六进制 十进制 十六进制 n=8 n=16 +127 0111 1111 7F +32767 7FFF +126 0111 1110 7E +32766 7FFE . . . +2 0000 0010 02 +2 000

20、2 +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 清华大学计算机系列教材IBMPC汇编语言程序设计第补码的加法和减法:补码的加法

21、和减法:求补运算求补运算 :对一个二进制数按位求反、末位加一对一个二进制数按位求反、末位加一 X补码补码 -X补码补码 X补码补码加法规则加法规则:X+Y补码补码 = X补码补码 + Y补码补码减法规则减法规则:X-Y补码补码 = X补码补码 + -Y补码补码 补码减法可转换为补码加法补码减法可转换为补码加法 64(-46) 180100 00001101 00100001 0010例:清华大学计算机系列教材IBMPC汇编语言程序设计第进位和溢出进位和溢出进位进位: 由于运算结果超出了位数由于运算结果超出了位数,最高有效位向最高有效位向 前的进位,这一位自然丢失,一般不表前的进位,这一位自然丢

22、失,一般不表 示结果的对错。示结果的对错。溢出:溢出:表示结果超出了字长允许表示的范围,表示结果超出了字长允许表示的范围, 一般会造成结果出错。一般会造成结果出错。例:例: (64) 11000000 127 01111111 64 01000000 + 1 00000001 0 1 00000000 128 进位进位 溢出溢出清华大学计算机系列教材IBMPC汇编语言程序设计第 字符的表示字符的表示ASCII码码:用一个字节字节来表示一个字符,低7位 为字符的ASCII值,最高位一般用作 校验位。 例:例: A 41H a 61H 1 31H 换行换行 0AH 回车回车 0DH 空格空格 20H清华大学计算机系列教材IBMPC汇编语言程序设计第第第1章作业章作业 Page 14 1.11.8清华大学计算机系列教材IBMPC汇编语言程序设计第

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号