
第1章 基础知识
1.1 计算机语言概述
1.1.1 机器语言
1.1.2 汇编语言
1.1.3 高级语言
1.1.4 非过程性语言
1.1.5 汇编语言的特点
1.2 计算机中数据的表示方法
1.2.1 进位计数制
1.2.2 数制转换
1.2.3 计算机中数据的表示
习题1
第2章 8086/8088计算机系统组织
2.1 8086/8088CPU的内部结构
2.1.1 8086CPU的功能结构
2.1.2 8086CPU的寄存器结构
2.2 存储器组织
2.2.1 存储器的地址和内容
2.2.2 存储器的分段
2.3 堆栈
2.3.1 堆栈的特点
2.3.2 堆栈的作用
2.3.3 堆栈的 *** 作
习题2
第3章 汇编语言语法与寻址方式
3.1 汇编语言语句类型及格式
3.1.1 语句类型
3.1.2 指令语句格式
3.2 伪指令
3.2.1 段定义伪指令
3.2.2 数据定义
3.2.3 符号定义伪指令
3.2.4 与地址有关的伪指令
3.2.5 常用伪指令
3.3 表达式
3.3.1 常量
3.3.2 数值表达式
3.3.3 地址表达式
3.4 寻址方式
3.4.1 立即数寻址方式
3.4.2 寄存器寻址方式
3.4.3 存储器型寻址方式
3.4.4 外设型寻址方式
3.5 汇编语言源程序结构
3.6 常用DOS功能调用
习题3
第4章 汇编语言指令系统
4.1 数据传送指令
4.2 算术运算指令
4.3 位 *** 作指令
4.4 处理器控制指令
习题4
第5章 汇编语言基本程序设计
5.1 汇编语言程序设计步骤
5.2 顺序结构程序设计
5.3 分支结构程序设计
5.3.1 转移地址的寻址方式
5.3.2 无条件转移指令
5.3.3 条件转移指令
5.3.4 分支结构程序设计
5.4 循环结构程序设计
5.4.1 循环控制结构
5.4.2 循环控制指令
5.4.3 循环程序设计方法
5.4.4 多重循环程序设计举例
5.5 串 *** 作程序设计
5.5.1 串 *** 作概述
5.5.2 串 *** 作指令及程序设计
习题5
第6章 汇编语言模块化程序设计
6.1 子程序设计
6.1.1 子程序概述
6.1.2 子程序的调用与返回指令
6.1.3 子程序的定义
6.1.4 主程序与子程序的参数传递
6.1.5 子程序的嵌套
6.2 模块化程序设计
6.2.1 模块的装配连接
6.2.2 模块问的通信
6.2.3 模块化程序设计举例
习题6
第7章 高级汇编语言程序设计
7.1 宏汇编
7.1.1 宏指令的使用
7.1.2 宏与子程序的区别
7.1.3 与宏有关的伪指令
7.1.4 宏库的建立与使用
7.2 重复汇编
7.3 条件汇编
7.4 数据结构
7.5 数据记录
7.6 汇编语言与高级语言的连接
7.6.1 嵌入汇编语言
7.6.2 多模块混合编程
习题7
第8章 输入/输出程序设计
8.1 输入/输出概述
8.1.1 I/O端口的编址方式
8.1.2 数据传送方式
8.2 数据的输入腧出
8.2.1 I/O指令
8.2.2 程序查询I/O方式
8.2.3 中断I/O方式
8.3 键盘输入控制
8.4 屏幕输出控制
8.5 打印机输出控制
8.6 磁盘文件 *** 作
8.6.1 文件概述
8.6.2 文件 *** 作的系统功能调用
8.6.3 文件管理程序设计
习题8
第9章 32位机新增指令及功能
9.1 80386的工作机制
9.1.1 80386CPU的内部结构
9.1.2 80386寄存器
9.1.3 80386存储器管理
9.1.4 存储模型与段的简化定义
9.1.5 80386的寻址方式
9.1.6 80386新增指令
9.2 80486系统
9.2.1 80486CPU结构
9.2.2 80486的内存管理和高速缓存
9.2.3 80486扩充指令
9.3 Pentium系统
9.3.1 PendumCPU结构
9.3.2 Penfium扩充指令
9.4 程序举例
习题9
第10章 实验指导
10.1 汇编语言上机过程及调试工具
10.2 分支程序设计
10.3 循环程序设计
10.4 子程序设计(一)
10.5 子程序设计(二)
10.6 字符处理程序设计
10.7 中断程序设计
10.8 磁盘文件管理程序设计
10.9 模块化程序设计
10.10 综合程序设计
附录A ASCII码表
附录B 调试工具DEBUG
参考文献
…… [看更多目录] 序言《80X86宏汇编语言程序设计教程》是高等院校计算机硬、软件及应用专业学生都必须学习的核心课程之一,它是计算机组成原理、 *** 作系统及其他核心课程的基础课,也是微机原理、单片机应用等课程的学习基础。同时,该课程对于训练学生掌握程序设计技术、熟悉上机 *** 作和程序调试技术都有重要作用。
《80X86宏汇编语言程序设计教程》的内容十分丰富,知识量大,是一门教师普遍感到难教、学生普遍感到难学的课程。为了满足教师和学生的教学需要,作者根据本课程的特点及知识结构,在多年教授这门课程的教学经验的基础上编写了此书,以期能帮助学生快速熟练地掌握相关知识,同时为教师的教学提供指导。
本书共10章,分为两大部分和两个附录,各部分内容如下:
第一部分:第1~9章。详细介绍了16位80X86 CPU的宏汇编程序设计。第1章基础知识,介绍了学习汇编语言程序设计所需的数据编码与运算等若干预备知识。第2章8086/8088计算机内部体系结构,介绍8086/8088 CPU内部结构和存储器管理。第3章汇编语言语法及七种寻址方式,主要介绍了宏汇编语言中的各种符号、表达式、伪指令语句、寻址方式及常用的系统功能调用。第4章汇编语言指令系统,全面介绍了8086指令系统中数据传送指令、算术运算指令、逻辑运算指令、处理器控制指令。第5章汇编语言基本程序设计,系统介绍了程序的三种基本结构(顺序结构、分支结构及循环结构)及串 *** 作指令的设计方法与技巧,同时对实现这些结构的转移指令、循环指令和串指令也作了详细介绍。第6章汇编语言模块化程序设计,介绍了子程序及模块化程序设计。第7章高级汇编语言程序设计,介绍了宏的定义与调用方法、重复汇编、条件汇编等技术,特别介绍了汇编语言与高级语言的混合编程。第8章输入/输出程序设计,介绍了输入/输出数据传送方式、中断技术、软中断程序设计及DOS与BIOS中断调用。第9章32位机新增指令及功能,以典型的32位80386 CPU为例,介绍了32位CPU的工作模式、内部寄存器、内存管理、寻址方式、新增指今等扩展功能。 文摘插图:
1.1.3高级语言
尽管汇编语言比机器语言方便,但汇编语言仍然具有许多不便之处,程序编写的效率远远不能满足需要。1954年,第一个高级语言FORTRAN问世了。高级语言是一种与具体的计算机硬件无关、独立于机器的通用语言,它比较接近人类自然语言的语法及数学表达式,人们用高级语言编程不必了解和熟悉机器的指令系统,更容易被人们掌握和使用。高级语言采用接近自然语言的词汇,其程序的通用性强,易学易用,这些语言面向计算机求解问题的过程,不依赖具体机器,与特定机器相分离。计算机不能直接执行高级语言程序,高级语言程序必须先翻译转换成“目标程序”(即机器语言程序)才能被执行。这种翻译转换工作由被称为“编译程序”的专门软件来完成,其过程如图1.2所示。
高级语言翻译成机器语言有两种方式,一种是先把高级语言程序翻译成机器语言程序,然后在机器上执行,这种翻译称为编译方式,大多数高级语言如PASCAL语言、c语言等都是采用这种方式;另一种方式是直接把高级语言程序在机器上运行,一边解释一边执行,这种翻译方式称为解释,如BASIC语言就采用这种方式。每一种高级语言都有自己的编译程序,在一台计算机上运行某一种高级语言源程序的前提是该计算机系统配置了该语言的编译程序。
高级语言源程序在不对硬件编程时,是在未考虑机器结构的特点下编写的,经过翻译后的目标程序往往不够精练,过于冗长,加大了目标程序的长度,导致存储空间占用较大和执行时间较长。
1.1.4非过程性语言
面向过程的高级语言称为过程性语言,用它编程序必须写出每一步如何进行的全过程。程序设计者必须具体指出执行的每一个细节(例如,输入一个数给某一变量、进行某一公式的运算、进行什么条件判断、执行多少次循环等)。这要求程序设计人员考虑得十分周到,稍有不慎(例如写错一个字母),就会导致程序运行失败。
data segment 定义数据段,你说浮点数类型,也没讲是双精度还是单精度。我这里用字类型。x DW 1000 dup(?)
s DW ?
data ends
code segment定义代码段
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov cx,1000 设置循环次数
lea bx,x 装载数组首地址
mov ax,s
L1: add [bx],ax 加法 *** 作
add bx,2 指针后移,指向下一数组元素。这里因为是字类型,所以后移两个字节。
loop L1
mov ax,4c00h
int 21h
code ends
end start
这段代码超简单。我已经在本机运行过。但是你就这么运行结果都为零。因为你没给我数组的初值。但是这段代码完全实现你想要的功能。你要是还不明白,我也没办法。你用的时候赋初值就行,就那个数据段有 ?的地方换成数据,明白吧。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)