80X86汇编语言程序设计教程

所需积分/C币:37 2014-09-14 19:14:06 19.51MB PDF
收藏 收藏
举报

80X86汇编语言程序设计教程,国内多所大学计算机相关专业课程
(京)新登字158号 内容提要 本#分为三部分第一部分是基础部分,以8086/80R为背最,X和℃灌容机为软硬件平台 以MASM和TASM为汇编器,介绍汇编语言的有关概念,讲解汇编语言程序设计技术。第“鄙分是提 高部分以8038为背景,以新…代黴处理器 Pentium为标,致和通裕地介绍了保护方式下的有关 概念,系统和详细地讲解了保护方式下的编程技术真实和生动地示了保护方式下的编程细节。第兰 鄴分是亡实验指导 本书的第一部分适合初学者,可作为学习汇编语言程序设计钓教材本书的第二部分适合已基本掌 握80868088汇编语言的程序员,可作为学习保护方式编程技术的教材或参考书,也可作为其他人员了 解高处理器对保护方式編程技术的参考书还可作为程序员透彻地了解 Windows程序设计技术的 参考书 版权所有,翻印必究。 本书封面贴有清华大学出版社激光防伪标签无标签者不得销售。 图书在版编国CIP)数据 80x88汇编语言程序设计教程/杨季文等编著.-北京:清华大学出版社,1998.4 ISBN7-302-02901-6 I.80…1.杨Ⅱ·汇编语言程序设计-教材N.TP312 中国版本图馆CH数据核字(98)第07169号 出版:清华大学上版社(北京清华人学校内,邮编100084) 因特网地:www.tuptsinghua.edu,cn 印刷:丰华印刷∫ 发行:新华书店总店北京科技发行所 开本:78?×10921/16印张:38’字数:902千字 版次:1998年6月第1版198年6月第1次印刷 书号:JSBN?-302-02901-6/TP·1535 印数:0001~6000 定价:39.00元 前 汇编珸言面向机器,只有它能够为程序员提供最直接操纵机器硬件系统的途径,利用 它可以编写出在“时间”和“空间”两个方面最具效率的程序 “汇編语言程序设计”是计算机各专业的一门重要基础课程,是必修的核心课程之一, 是“操作系统”和“微杋原理与接口技术”等其他核心课程必要的先慘课。该课程对于训练 学生掌量程序设计技术熟悉上机操作和程序调试技术都有重要作用此外,“汇编语言程 序设计”也是其他相关专业的必修或选修课。 日前,国内最广泛使用的FC系列机(包括兼容机),都以 Intel的80x86系列微处理 器或者兼容的微处理器为CPU。在Inel的80x8家底中,16位的8086/8088是基础,实 现了以分段方式管理存储器;32位的80386是髙档徽处理器的里程碑,实现了支持多任 务的保护工作方式;基于MMX技术的 Pentium是新一代的徽处理器,实现了对多媒体 处理的支持。本书以8086/8088为基础,以80386为重点,面向 Pentium等新一代微处理 器,讲解汇编语言程序设计的一般概念、基本技术和常用技巧,介绍宏和模块化程序设计 的技术方法讲解保护方式编程的相关概念编程技术及实现细节。 本书分三个部分,共12章。第一部分是基础韶分。第1章介绍汇编语言的特点和其 他基本概念。第2、第3章以8086/8088为背景简要介绍8086/8088寻址方式、指令系统 和江编语言的常用伪指令语句后讲解如何利用汇编语言实现程序的基本结构。第4章详 细讲解了子程序的设计和如何调用DOS提供的子程序。第5章以PC及其兼容机为硬件 平台,介绍输入/输出和中断等概念,讲解如何利用汇编谙言编写BTOS程序和调用BKOS 程序。第6章以DO为软件平台讲解如何利用汁编语言编写小型应用程序。第7章以 MASM和TASM为汇编噩,介绍宏和条件汇编等江编语言的高级泼术。第8章介绍模块 化程序设计技术以及与高级语言的混合编程。第部分尾提高部分。第9章介绍实厅式 下的80386及其编程。第10章讲解保护方式下的80386及其编程,该章内容十分卡富。第 11单介绍8086和 Pentium程序设计基础。第三部分是上机实验指导,安排为第12章, 应在上机实验前先阅读了解该章内容。 本书的第一部分适合初学者可作为学习汇编诰言程序设计的教材。本书的第二部分 适合已基本掌握8086/8088汇编语言的程序员,可作为学习保护方式编程技术的教材或 参考书,也可作为其他人员了解高档微处理器和保护方式编程技术细节的参考书,还可作 为程序员透彻地了解 Windows程序设计技术的参考书。 畅季文编写第1章、第3章、第4章至第7章、第β章至第11章,朱巧明编写第2章, 吕强编写第8章,曹培培编写第12章。由杨季文最后统一定稿。 本书从初稿到定稿的全过程都始终得到了指导老师钱培德教授的热情关心和大力支 持承蒙他审阅了全书,特在此表示衷心感谢。本书在编著过程中得到了同事鲁征山、陈时 飑、李培峰和李廷彦等同忠的帮助还得到了赵雷和朱楠派等问志的帮助,在此表示感谢。 刘文杰和许晨等同志在讲课时使用过本书的初稿,并提出了宝贵意,在此表示感谢。 书中不妥和谬误之处难免,恳诮读者批评指止。 编者 1998年2月 目·录 第一部分葚础邰分 第1章绪论 看血自自 售·督血倡自章血自自曲血督 11汇编语言概述…………………………………………1 1.1.1汇编语言… 112汇绵语言的特点 即罪罪D罪罪b口口罪看即罪啁罪看看即即■p冒pp■■售咖即看聊鲁■■聊珈看自罪咖申即罪如者食●● 11.3恰当地使用汇编语言 …3 1.2数据的表示和类型……………………………………………………………4 1.21数值数据的表示…………… DD,+eee,.,.4 1.2.2非数值数据的表示 曾v_曾曾?日qP曾pp即目p即P唯即P曾_曾中节p曾v曾?世tv曾P曾曾1曾曾 6 1.2.3基本数据类型 1.3Inte系列CPU简介 中中函4ψ中4品中西香中曾斗盲中甲曾白甲曾·v甲Ps甲1曾4甲b中如幽ψ晶西品品·品·日4面 1318位微处理器…………………………………………………8 1.3.216位微处理器 音鲁督自冒器自自看由自會血自山自由自血督音■·督情血鲁目司鲁·血督自血鲁 1.3.332位徵处理器……………”…"……""""……11 1. 3. 4 Pentium Fu Pentium Pro …-13 14习题…… 第2章8086/8088寻址方式和指令系统………………………………15 1886/8088寄存器组………………………………………………15 2.1.18086/8088CPU寄存器组…………………15 212标志寄存器……,417 2.2存储器分段和地址的形成… 19 2.2.1存储单元的地址和内容……………………………………19 2.2.2存储器的分段…………………………………………20 2.2.3物理地址的形成 2 2.2.4段寄存器的引用……………………………………………………·21 238086/8988的寻址方式……………………………………22 231立即寻址方式…… q唱看口唱国qq甲 ………………23 2.32寄存器寻址方式……………………… 23 2.3.3直接寻址方式……… 2.3.4寄存器间接寻址方式……………………………………24 2.3.5寄存器相对寻址方式……………………………………………………25 2.3.6基址加变址寻址方式………………"…"……………………26 2.3.7相对基址加变址寻址方式………… 27 2.48086/8088指令系统 匙早■■■ 甲q卓甲早4 2.4.1指令集说明………… 28 2,4.2数据传送指令……………………………………29 2.43堆栈操作指令…………………………………………………32 44标志操作指令 2.45切减运算指令 b曲日即日中中电唱看口即由曲曲●D甲。导·自即● 2.4,6乘除运算指令…………,…………………………………………41 2,4,7逻辑运算和移位指令 …………44 248转移指令………………………………………51 2.5习题… 第3章汇编语言及其程序设计初步…………………………………………………6 3.1.汇编话言的语句……………… 63 31.1语句的种类和格式……… 3.1.2数值表达式… 64 地址表达式…………………………………67 3.2变量和示号………………………………………………………67 3.2.1数据定义语句 3.2.2变量和标号………… ………………·70 3.3常用伪指令语句和源程序组织 3.3.1符号定义语句 ◆鲁■■·t自會自·自鲁會备■聊■血■■『血自自音面卩即咖骨■t■p血自罪导聊『■t自省自●罪看 33.2段定义语句………………………………………………………7 3.33汇编语言源程序的组织… 3.4顺)程序设计 …………………………*……81 34.1顺序程序举例………………………………………………81 简单奋表法代码转换 會昏■鲁鲁■幽會幽自會白曾噜自噜■■■■昏自個個鲁卧雪■■亡■自·曲幽■■■鲁■■ 3.4.3查表法求函数值 伊鲁曾t号鲁 1t十血口自tt曹鱼口曹■ 3.5分支程序设计……………………*……………86 3.5.1分支程广举例………… bp_号曾v甲··ttP 86. 3.5.2利用地批丧实现多向分支…………"……………91 36循环程序设计………………………………………………94 3.6.1循环程序举例 …………94 362多重循环程序举例…………………………………………103 37习题……………………………………………………………106 第4章子程序设计和DO8功能调用 4444444■山4}山晶唱4甲b即卦如一4L“兽甲口“■_卡 110 A.I子程序设计…………………………………………110 A.1,1过程调用和返回指令…………………*“““110 4.1.2过程定义语句……………………………………………………115 4.1,3子程序举例…………………………………………116 4.L.4子程序说明信息… 118 寄存器的保护与恢复……………………………………l19 4.2主程序与子程序间的参数传递 …………………121 A.2.1利用寄存器传递多数………………………………………"…I2L 4.2.2利用约定存储单元传递参数 ……""…………123 4.2.3利用堆栈传递参数 …………………………125 4.2.4利用CALL后续区传递参数……………127 4,3IS功能调用及应用…………………………………………………129 4.3.1DS功能调用概述………………………"………………129 4.3.2基本I/O功能调用 t白命t血自身· 130 4.3.3应用举例 s…132 4.4磁盘文件管理及应用 ………………………141 4.4.1以)S磁盘文件管理功能调用……………………………14l 4.2应用举例………………………………………:143 4.5子程序的递归和重入………………………………………50 4.5.1递归子程序… ………150 4.5.2可重入子程序 ……………………………………151 46习题 會督命章卓@D罩 ……………………………:152 第5章输入输出与中断 155 5.1输入和输出的基本概念… l55 5.1.1I/O端口地址和I/O指令…… 155 2数据传送方式 曾甲·白白命身萨擊 ·中日中·4··日中·44甲 56 5.1.3存取RT/ CMOS RAM………………"……157 5.2查询方式传送数据… l60 5.2.1查询传送方式…………"…160 .2.2读实时钟……… 5.2.3脊询方式打印输出·… 西晶古4甲甲面+日■4卩早早◆甲日 53中断 *‘世◆‘44}+44.‘‘44日4+·4甲甲‘··4·····《 164 5.3.1中断和中断传送方式………·… ……………164 2中断向量表 165 5.3.3中断响应过程……… 168 3.4外部中断……………………………168 5.3.5内部中断∵ 甲··“·导·t自曲·中P··日甲P看q甲自·看平 ……………170 36中断优先级和中断嵌套…… 172 537中断处理程序的设计 173 54基本输入输出系统BI(S ……………174 4.1基本输入输出系统BS概述 174 5.4.2键盘输入…………………………………………175 5,43显示输出… ………………178 5.4.4打印输出 ]88 5.5软中断处理程序举例… 甲『甲命自m血口甲甲司甲旷即自自音t由血■血 ………191 5.51打印I程序…………………………191 5.5.2时钟显示程序……………………………………………………194 5.6习题………………,…………………,………………………………197 第6章简单应用程序的设计… ………………………………200 6.1字符串处理……………………………………………………200 6.L.1字符串操作指令 6.1.2重复前缀…………………………………205 6,1.3字符串操作举例………208 6、2十进制数算术运算调整指令及应用……… 6.21组合BCD码的算术运算调整指令… ++++++I4 215 6.2.2未组合BCD码的算术运算调指令 ■▲4画画着导■4岳着瞢看喝,甲带4甲↓4看郾看善 623应用举例………218 6.3DOS程序段前缀和特殊情况处理程序……… 4,即看着4■早甲号甲鱼 ………224 6.3.1Ds程序段前缀PSP 擊平争冒导早自·司·甲甲P鲁自自中q目P 即幽备 224 6.32对Ctrl+C键和Ctr+ Break键的处理……28 6.4TSR程序设计举例……… 6,4.1驻留的时钟显示程序……………………234 6.4.2热键激活的TSR程序……………………………………… 题…………………………………………………………………238 第7章高级汇编语盲技术 b即血血 241 71结构和记录……………………………………………………241 7..上结构 白vq甲↓ 甲q即血血血血自白口■即印血血自血日申申血口甲 24 7.1.2记录 ■口即■■■■■■罩■■ ………………"……246 7.2宏 249 7.2.】宏指令的定义和使用…………… 250 7.2.宏指令的用途……………………"………251 72.太指令中参数的使用…………………………………………………253 7.2.4殊的宏运算符……………………………254 7.2.5宏与子程序的区别 ………………256 7.2.6与宏有关的伪指令……………………………………………256 7.2.7宏定义的嵌套 ……258 7.3重复汇绵 ■曾口冒即冒冒■,曾曾冒 ■罩■冒曾曾■口『會■ 260 7.3.所指令REPT………… 260 7.3.2伪指令1RP 26l 7.3.3指令IRPC… …………262 7.4条件汇编 b晶dp凸县4备 262 7.4.1条件汇编伪指令 ■昏昏斗瞢昏卧44卧 7.4.2条件汇编与宏结合 ■■q■■■■郾q■↓即罩■■p冒■■■■■■■■■■罩4哥■甲国司旱■■冒q冒甲 265 7.5源程序的结合……… 268 7.5.1源程序的结合…………………………………………………268 7.5,2宏库的使用…… s"271 7.5习题…………………………………………………………273 第8章模块化程序设计技术…“………………"………………………275 81段的完整定义……………………………………………………………………275 8.1.1完整的段定义………………………………………275 8.1.2关于堆栈段的说明 8.1.3段组的说明和使用…………………………………………281 8.2段的简化定义 中=命血4古B命4出由血曲A中甲甲甲如当命 8.2.1存储模型说明伪指令 285 82.2筍化的段定义伪指令 …“285 8.23存储模型说明伪指令的隐含动作 s288 8.3模块间的通信…………………………………………289 8.3.1伪指令PHIC和伪指令 EXTRN……… 289 83.2模块间的转移·………""t“291 83.3模坎间的信息传递 ……………………"………293 8.4子程序库…………………………………………!……………298 8.4.1子程序库 bbb●p4 ■晷d國4■国4d山4d ■■画d口看4画晶晶 298 8.4.2建立子程序库……………………………………………………………298 84.3使用举例 口■国福看4↓4pd 8.5编写供 Turbo C调用的函数………………………………………………………303 8.5.1汇编格式的编译结果……………………*……303 8.2汇编块应该遵守的约矩……"*……………………306 8.5.3参数传递和寄存器保护……………………………………307 8.5.4举例…… ………………………………………309 8.6习题 烟自血申血血+鲁·日血省·卧·备唱·省罪甲 ◆ψ·杳·函 甲‘甲自申自血m血自·■血血●·甲甲即即看甲甲咖杳血由即命 313 第二部分提高部分 第9章80386程序设计基础……………………………………“……314 9.180386寄存器…………………………………………………………………314 9.11通用寄存器…………………………………………………315 9.2段寄存器…………………………………… 35 9.13指令指针和标志寄存器………………………1316 9.280386存储器寻址… 3l6

...展开详情
试读 127P 80X86汇编语言程序设计教程
立即下载 低至0.43元/次 身份认证VIP会员低至7折
    抢沙发
    一个资源只可评论一次,评论内容不能少于5个字
    • 领英

      绑定领英第三方账户获取
    • 签到新秀

      累计签到获取,不积跬步,无以至千里,继续坚持!
    关注 私信 TA的资源
    上传资源赚积分,得勋章
    最新推荐
    80X86汇编语言程序设计教程 37积分/C币 立即下载
    1/127
    80X86汇编语言程序设计教程第1页
    80X86汇编语言程序设计教程第2页
    80X86汇编语言程序设计教程第3页
    80X86汇编语言程序设计教程第4页
    80X86汇编语言程序设计教程第5页
    80X86汇编语言程序设计教程第6页
    80X86汇编语言程序设计教程第7页
    80X86汇编语言程序设计教程第8页
    80X86汇编语言程序设计教程第9页
    80X86汇编语言程序设计教程第10页
    80X86汇编语言程序设计教程第11页
    80X86汇编语言程序设计教程第12页
    80X86汇编语言程序设计教程第13页
    80X86汇编语言程序设计教程第14页
    80X86汇编语言程序设计教程第15页
    80X86汇编语言程序设计教程第16页
    80X86汇编语言程序设计教程第17页
    80X86汇编语言程序设计教程第18页
    80X86汇编语言程序设计教程第19页
    80X86汇编语言程序设计教程第20页

    试读已结束,剩余107页未读...

    37积分/C币 立即下载 >