80X86汇编语言程序中关于通信的发送与接收中SBUF的物理地址一致怎么理解

80X86汇编语言程序中关于通信的发送与接收中SBUF的物理地址一致怎么理解,第1张

SBUF的物理地址,从编程时严格上讲是个逻辑地址,在实际应用中是会改变的,例如进行了一次的读写,SBUF的物理地址就该变一次,唯一不变的是逻辑地址。程序员可以通过逻辑地址对物理地址进行 *** 作,MOV SBUF ,A

MOV A,SBUF

只是意义上的物理地址一致,但实际中在进行第二次 *** 作时物理地址已经变化,因为程序运行时逻辑地址没有变化,所以程序可以根据指针来确定下一个物理地址(即第二次 *** 作的物理地址)

希望对你有帮助

《80X86宏汇编语言程序设计教程》以目前广泛使用的Pc机为平台,详细介绍了宏汇编语言的基本概念、程序设计的基本方法与技巧。全书共10章,主要内容包括:宏汇编语言、程序设计的基本技巧、输入/输出程序设计、32位CPU扩展功能、汇编语言上机内容与要求。《80X86宏汇编语言程序设计教程》内容详实,叙述细腻易懂,在章节安排上由浅入深,指令介绍与指令应用紧密结合,使得知识易于理解和掌握。《80X86宏汇编语言程序设计教程》可作为高等院校计算机及相关专业“汇编语言程序设计”课程教材,也可作为独立学院、高职高专计算机及相关专业、有关工程技术人员的教学参考书。 编辑推荐《80X86宏汇编语言程序设计教程》:计算机科学与技术系列教材 目录

第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非过程性语言

面向过程的高级语言称为过程性语言,用它编程序必须写出每一步如何进行的全过程。程序设计者必须具体指出执行的每一个细节(例如,输入一个数给某一变量、进行某一公式的运算、进行什么条件判断、执行多少次循环等)。这要求程序设计人员考虑得十分周到,稍有不慎(例如写错一个字母),就会导致程序运行失败。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11118267.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存