第四章微机原理---汇编语言部分

合集下载

微机原理与应用-04 汇编语言

微机原理与应用-04 汇编语言

例:把片外RAM2200H单元中的数送入片内70H单元中。
BEGIN:MOV
MOV MOVX MOV
13
DPTR,#2200H ;(DPTR)=2200H
R0,#70H A,@DPTR @R0,A
南京航空航天大学机电学院机械电子工程系 2005年
《微机原理及应用》课件
1、标号字段
后必跟“ :”号; 首字符必是字母,由1~8个ASCII 码 字符组成; 同一标号在一个程序中只能定义一次; 不能使用指令助记符、伪指令、寄存器 的符号名称; 一条语句的标号可有可无,取决于本程 序的其他语句是否访问该条语句。
《微机原理及应用》课件
(2) 机器汇编
汇编语言 源程序
汇编
机器语言 目标程序
汇编程序

用机器汇编,方便快捷,并能在汇 编过程中发现语法错误。
8
南京航空航天大学机电学院机械电子工程系 2005年
《微机原理及应用》课件
Medwin汇编环境示例
9
南京航空航天大学机电学院机械电子工程系 2005年
《微机原理及应用》课件
《微机原理及应用》课件
2. 汇编语言


面向机器的符号语言,指令用助记符表示; 指令直接访问CPU的寄存器、存储单元和 I/O端口,响应速度快,程序的存储空间 利用较高; 汇编语言是面向机器的语言,因此使用者 必须对机器的硬件结构和指令系统比较熟 悉。
5
南京航空航天大学机电学院机械电子工程系 2005年
33
南京航空航天大学机电学院机械电子工程系 2005年
《微机原理及应用》课件
(2)子程序的参数传递
a. 利用寄存器(R0~R7和A)传递参数

微机原理与接口技术-第4-1章

微机原理与接口技术-第4-1章

例4-3 用键盘最多输入10个字符,并存 入内存变量Buff中,若按“Enter”键,则 表示输入结束。
用BIOS层功能调用实现 层功能调用实现 的源程序: 的源程序: .MODEL SMALL CR EQU 0DH .STACK 200H .DATA Buff DB 10 DUP(?) .CODE .STARTUP MOV CX, 0AH LEA BX, Buff
Windows层功能模块的调用
Win32 API使用堆栈来传递参数 API函数调用 C语言的消息框函数的声明: int MessageBox( HWND hWnd, // handle to owner window LPCTSTR lpText, // text in message box LPCTSTR lpCaption, // message box title UINT uType // message box style );//参数 最后还有一句说明: Library: Use User32.lib.//说明这个函数的位置
API 函数的返回值
有的API 函数有返回值,如MessageBox 定义 函数有返回值, 有的 的返回值是int类型的数,返回值的类型对汇编 的返回值是 类型的数, 类型的数 程序来说也只有dword 一种类型,它永远放在 一种类型, 程序来说也只有 eax 中。如果要返回的内容不是一个 如果要返回的内容不是一个eax所能 所能 容纳的, 容纳的,Win32 API 采用的方法一般是返回一 个指针, 个指针,或者在调用参数中提供一个缓冲区地 干脆把数据直接返回到缓冲区中去。 址,干脆把数据直接返回到缓冲区中去。
.REPEAT MOV AH, 0H INT 16H .BREAK .IF AL==CR MOV [BX],AL INC BX .UNTILCXZ .EXIT 0 END

汇编语言与微机原理

汇编语言与微机原理

汇编语言与微机原理汇编语言和微机原理是计算机科学中两个重要的概念。

汇编语言是一种低级语言,用于编写计算机程序,在计算机硬件层面上进行操作和控制。

微机原理则是关于微型计算机的基本工作原理和组成结构的知识。

一、汇编语言的概念与应用汇编语言是一种直接操作计算机硬件的编程语言,与高级语言相比,汇编语言更接近计算机底层,能够直接控制硬件资源。

汇编语言通过使用助记符和指令直接操作寄存器、内存和其他硬件设备,实现程序的运行逻辑。

它是高级语言与计算机硬件之间的桥梁。

汇编语言在许多方面都有广泛的应用。

首先,在嵌入式系统领域,汇编语言可以更好地利用有限的资源,提高系统的性能和响应速度。

其次,在计算机游戏开发中,汇编语言可以直接控制硬件,实现更复杂的图形和音频效果。

此外,在密码学和安全领域,使用汇编语言编写的代码更难以被破解和攻击。

二、微机原理的基本概念微机原理是研究微型计算机的基本工作原理和组成结构的学科。

微型计算机由中央处理器(CPU)、存储器、输入输出设备及总线等几个基本组成部分构成。

微机原理主要探讨这些组件的工作原理以及它们之间的通信和配合方式。

CPU是微机系统的核心部件,它承担了计算和控制的功能。

CPU通过指令周期不断地执行指令,从而完成任务。

存储器用于存储程序和数据,分为内存和外存两种。

输入输出设备用于与外部环境进行数据交互。

而总线则连接了CPU、存储器和输入输出设备,实现了它们之间的数据传输和通信。

在微机原理中,还需要了解指令系统、寻址方式、中断处理以及时序控制等内容。

指令系统是CPU能够理解和执行的指令集合,每条指令都对应着一种操作。

寻址方式决定了CPU如何访问存储器中的数据。

中断处理可以让CPU在执行任务过程中暂时停下来处理优先级更高的事件。

时序控制则负责协调微机系统各个组件的工作顺序和时机。

三、汇编语言与微机原理的关系汇编语言和微机原理是紧密相关的。

汇编语言是在微机原理的基础上进行编程的工具。

通过汇编语言,可以更深入地了解微机原理中的各个组成部分以及它们的工作方式。

微机原理第四章

微机原理第四章
汇编语言有两种类型语句,即指令和伪指令,前者属于指令性语句,后 者属于指示性语句 指令性语句:指令,由汇编程序翻译成机器指令,在汇编过程中产生对 应的目标代码 典型的汇编指令是:ADD AX, [SI] 指示性语句:为汇编程序提供一些信息,让汇编程序在汇编过程执行某 些特定的功能,不产生目标代码 典型的伪指令是:COST DW ? ;定义一个字空间,并将标 识符COST指向该字空间
16
4、分析运算符
1、 算术运算符 + X / MOD SHL SHR
可以对数据进行运算,运算结果仍然为数据,但对地址不能进行乘除 运算。
例如: 20A1H+1040H 21H SHL 2 = 84H
17
2、 逻辑运算符 AND OR NOT XOR
只能对常数进行运算,得到的结果也是常数 既可以作指令助记符,又可以作汇编语言的运算符 指令助记符是在程序执行时运算的,运算符是在汇编过程进行的 例如: AND DX, PORT AND 0FEH
20
4、分析运算符(数值返回运算符) OFFSET SEG TYPE SIZE LENGTH
(1)OFFSET:取变量或标号的偏移地址值 格式:OFFSET 变量或标号 (2)SEG:取变量或标号的段基址 格式:SEG 变量或标号
21
(3)TYPE:返回变量的类型属性或标号的距离属性 格式:TYPE 变量或标号 A1 DB 20H,30H A2 DW 0438H L1:MOV AH, TYPE A1 MOV BH, TYPE A2 MOV BL, TYPE L1 (4)LENGTH:当变量中使用DUP时,LENGTH返回此变量所包含的 单元数,对其它变量则返回1
4321H, 2255H LABC LABD ;AL=21H ;AX=4321H

微机原理课后习题参考答案

微机原理课后习题参考答案

微机原理课后习题参考答案第1部分微型计算机基础知识1.1 微处理器、微型计算机和微型计算机系统三者之间有什么不同?【解】微处理器:指计算机内部对数据进行处理并对处理过程进行控制的部件,伴随着大规模集成电路技术的迅速发展,芯片集成密度越来越高,CPU可以集成在一个半导体芯片上,这种具有中央处理器功能的大规模集成电路器件,被统称为“微处理器”。

微型计算机:简称“微型机”、“微机”,也称“微电脑”。

由大规模集成电路组成的、体积较小的电子计算机。

由微处理机(核心)、存储片、输入和输出片、系统总线等组成。

特点是体积小、灵活性大、价格便宜、使用方便。

微型计算机系统:简称“微机系统”。

由微型计算机、显示器、输入输出设备、电源及控制面板等组成的计算机系统。

配有操作系统、高级语言和多种工具性软件等。

1.2 CPU在内部结构上由哪几部分组成?CPU应该具备哪些主要功能?【解】CPU在内部结构上由运算器、控制器、寄存器阵列和内部总线等各部分构成,其主要功能是完成各种算数及逻辑运算,并实现对整个微型计算机控制,为此,其内部又必须具备传递和暂存数据的功能。

1.3 微型计算机采用总线结构有什么优点?【解】①简化了系统结构,便于系统设计制造;②大大减少了连线数目,便于布线,减小体积,提高系统的可靠性;③便于接口设计,所有与总线连接的设备均采用类似的接口;④便于系统的扩充、更新与灵活配置,易于实现系统的模块化;⑤便于设备的软件设计,所有接口的软件就是对不同的口地址进行操作;⑥便于故障诊断和维修,同时也降低了成本。

总线的逻辑电路有些是三态的,即输出电平有三种状态:逻辑“0”,逻辑“1”和“高阻”态。

1.4计算机总线有哪些,分别是什么?【解】总线按其信号线上传输的信息性质可分为三组:①数据总线,一般情况下是双向总线;②地址总线,单向总线,是微处理器或其他主设备发出的地址信号线;③ 控制总线,微处理器与存储器或接口等之间1.5 数据总线和地址总线在结构上有什么不同之处?如果一个系统的数据和地址合用一套总线或者合用部分总线,那么要靠什么来区分地址和数据?【解】数据总线(DB)为双向结构,数据在CPU与存储器或I/O 接口之间的传送是双向的,(数据既可以读也可以写),其宽度通常与微处理器的字长相同。

微机原理---汇编语言习题(完整参考答案)

微机原理---汇编语言习题(完整参考答案)

MIS 硬件原理复习内容1.数的不同进制转换,原码、反码、补码转码,BCD码2.掌握D触发器逻辑3.D触发器组成的电路:卡诺图及简化、真值表、波形图、状态转换图4.三态门、总线结构5.存储器扩展方法:地址总线的作用,内存分页技术,地址译码方法,译码器6.86X 系列CPU 结构框图7.8086寄存器组,寻址方式8.指令,伪指令9.数据定义,完整程序结构10.汇编语言上机及调试过程1.分别指出下列指令中的源操作数和目的操作数的寻址方式:(1)MOV SI, 200(2)MOV CX, DA TA[SI](3)ADD AX, [BX][DI](4)AND AX, BX(5)PUSHF2.指出指令MOV AX, 2010H 和MOV AX, DS:[2010H]的区别3.写出以下指令中内存操作数的所在地址(1)MOV AL, [BX+5](2)MOV [BP+5], 5(3)INC BYTE PTR[SI+3](4)MOV DL, ES:[BX+DI](5)MOV BX, [BX+SI+2]4.判断下列指令书写是否正确(1)MOV DS, 0100H (错)(2)MOV AL, BX (错)(3)MOV BL, F5H (错)(4)MOV DX, 2000H (对)(5)INC [BX] (对)(6)MOV 5, AL (错)(7)MOV [BX], [SI] (错)(8)PUSH CS (对)(9)POP CS (错)5.若SP=2000H, AX=3355H, BX=4466H, 试指出执行下列指令后有关寄存器的值:(1)PUSH AX;执行后AX=? SP=? (AX=3355H SP=1FFEH)(2)PUSH AXPUSH BXPOP DX;执行后AX=? DX=? SP=?(AX=3355H DX=4466H SP=1FFEH)6.假设想从100中减去AL中的内容,用SUB 100, AL是否正确?如果不对,应用什么方法?7.有如下程序,当AL某位为何值时,可将程序转至AGIN2语句。

16、32位微机原理、汇编语言和接口技术教程课后习题答案解析

16、32位微机原理、汇编语言和接口技术教程课后习题答案解析

《16/32 位微机原理、汇编语言及接口技术教程》部分习题参考解答第1 章微型计算机系统概述〔习题1.2 〕什么是通用微处理器、单片机(微控制器)、芯片、嵌入式系统?〔解答〕通用微处理器:适合较广的应用领域的微处理器,例如装在机、笔记本电脑、工作站、服务器上的微处理器。

单片机:是指通常用于控制领域的微处理器芯片,其内部除外还集成了计算机的其他一些主要部件,只需配上少量的外部电路和设备,就可以构成具体的应用系统。

芯片:称数字信号处理器,也是一种微控制器,其更适合处理高速的数字信号,内部集成有高速乘法器,能够进行快速乘法和加法运算。

嵌入式系统:利用微控制器、数字信号处理器或通用微处理器,结合具体应用构成的控制系统,其典型的特点是把计算机直接嵌入到应用系统之中。

〔习题1.5 〕说明微型计算机系统的硬件组成及各部分作用。

〔解答〕:也称处理器,是微机的核心。

它采用大规模集成电路芯片,芯片内集成了控制器、运算器和若干高速存储单元(即寄存器)处理器及其支持电路构成了微机系统的控制中心,对系统的各个部件进行统一的协调和控制。

存储器:存储器是存放程序和数据的部件。

外部设备:外部设备是指可与微机进行交互的输入()设备和输出()设备,也称设备。

设备通过接口与主机连接。

总线:互连各个部件的共用通道,主要含数据总线、地址总线和控制总线信号。

习题1.6 〕什么是总线?微机总线通常有哪3 组信号?各组信号的作用是什么?〔解答〕总线:传递信息的共用通道,物理上是一组公用导线。

3 组信号线:数据总线、地址总线和控制总线。

(1)地址总线:传输将要访问的主存单元或端口的地址信息。

(2)数据总线:传输读写操作的数据信息。

(3)控制总线:协调系统中各部件的操作。

习题1.7 〕简答如下概念:(1)计算机字长(2)取指-译码-执行周期(3)(4)中断(5)总线解答〕(1)处理器每个单位时间可以处理的二进制数据位数称计算机字长。

(2)指令的处理过程,即指处理器从主存储器读取指令(简称取指),翻译指令代码的功能(简称译码),然后执行指令所规定的操作(简称执行)的过程。

微机原理与接口技术-汇编语言程序设计

微机原理与接口技术-汇编语言程序设计

4.1.2 8086汇编语言源程序的格式
源程序的一般格式为: NAME1 SEGMENT
语句 语句 NAME1 ENDS NAME2 SEGMENT 语句 语句 NAME2 ENDS END <标号>
第四章 汇编语言 程序设计
4.2 语句的格式
第四章 汇编语言 程序设计
汇编语句分为指令语句和伪指令语句两类,一般都由分 隔符分成的 4 个部分组成。
HLT
;然后停机
NOT DONE : IN AL, PORT_VAL ;未超过时,输入下一字节
ADD SUM, AL
;与以前的结果累加
JMP CODE ENDS ;代码段结束
END START
;整个程序结束
可以看到,8086汇编的一个语句行是由4个部分组成,即
标号 操作码 操作数 ;注释(或名字)
普通高等学校计算机教育“十三五”
微机原理与接口技术
内容导航
CONTENTS
4.1 汇编语言的格式 4.2 语句的格式 4.3 伪指令语句 4.4 指令语句 4.5 汇编语言程序设计及举例
4.1 汇编语言的格式
4.1.1 8086汇编语言的一个例子
第四章 汇编语言 程序设计
MY_DATA SEGMENT ;定义数据段
SUM DB ?
;为符号 SUM 保留一个字节
MY_DATA ENDS
;定义数据段结束
MY_CODE SEGMENT ;定义码段
ASSUME CS :MY_CODE, DS :MY_DATA
;规定 CS 和 DS 的内容
PORT_VA1 EQU 3
;端口的符号名
START :MOV AX, MY_DATA ;DS 初始化为 MY_DATA

[计算机硬件及网络]微机原理与接口技术汇编语言程序设计

[计算机硬件及网络]微机原理与接口技术汇编语言程序设计

ORG 200H
;目标程序的偏移量
DATA SEGMENT
;数据段开始
指令性语句和指示性语句的最大区别就是指示性 语句在标识符和伪指令助记符没有冒号
4.2 汇编语言程序结构
段定义伪指令SEGMENT、ENDS、ASSUME
伪指令SEGMENT和ENDS总是成对出现。SEGMENT用来定义 段开始,ENDS是来定义段结束。这一段伪指令可以将源程序 分为几个段,通常为数据段,堆栈段和代码段。
汇编语句语句格式
指令性语句的格式如下:
<标识符:> 指令助记符 目标操作数 <,源操作数> <;注释>
START: MOV AX,1090H
;将16进制数1090H送入AX
INC BX
指示性语句的格式如下:
<标识符> 伪指令助记符 <操作数1,操作数2…> <;注释>
CR DB ODH
;在字节单元CR处存放数据0DH
段,所以错误信息并不
←“no stack segment”
影响程序正常执行。
DEBUG和MASM的区别
DEBUG是调试器,它的主要用途在于除错,能够 观察每条汇编语句运行后的结果,方便的修正汇编 程序中的错误。DEBUG中必须使用16进制的数。
MASM是一种编译器,它能将汇编源程序进行编 译、链接形成可执行文件,但汇编程序必须使用规 范书写方式,源程序中除了指令性语句,还必须加 入许多与指令语句无关的指示性语句,以供编译器 识别。 MASM中的数据默认为10进制。
汇编源文件 .ASM
汇编 MASM.EXE
目执行程序 .EXE
汇编语言语句类型
指令性语句

微机原理_汇编语言

微机原理_汇编语言

多模块的连接
• 程序较大时,可将程序划分为几个独立而 又相互联系的模块(文件) • 每个文件分别汇编 • 然后用link连接 • 存在问题: 段的组合定位 段的交叉引用
同名段的融合——段的组合
• 同文件多个同名段在编译时需要融合 • 多个文件同名段在链接时也需要融合 • 通过“链接类型”参数设置同名段融合类 型
编译
• 编译:将汇编源程序变为目标文件 • 链接:将多个目标文件组合为一个可执行 文件 • 汇编源程序:指令、伪指令、表达式…… • 汇编程序有很多东西只在编译的时候有效, 有些东西在编译时会变化
汇编程序的架构——分段 汇编程序的架构——分段 ——
为了方便存储和管理, 为了方便存储和管理,一般规范的汇编语 言源程序是分段的,一般分为代码段、 言源程序是分段的,一般分为代码段、数据 堆栈段、附加段,其地址分别赋给CS CS、 段、堆栈段、附加段,其地址分别赋给CS、 DS、SS、ES。 DS、SS、ES。
程序的结束
语句: 表达式> 语句:END <表达式> 表达式必须产生一个存储器地址值, 表达式必须产生一个存储器地址值, 这个地址是当程序执行时, 这个地址是当程序执行时,第一条要执 行的指令的地址。 行的指令的地址。 这条语句不仅告诉编译程序什么地 方结束, 方结束,同时还告诉编译程序什么地方 开始
变量定义
• 一般放在数据段中 • 分配存放数据的空间,并放上初值 DB —— 变量为字节数据类型(8位) 变量为字节数据类型(8 DW—— 变量为字数据类型(16位) DW—— 变量为字数据类型(16位) DD —— 变量为双字数据类型(32位) 变量为双字数据类型(32位) DQ —— 变量为4字数据类型(64位) 变量为4字数据类型(64位) DT —— 变量为10字节数据类型(80位) 变量为10字节数据类型(80位)

微机原理与接口技术习题答案4

微机原理与接口技术习题答案4

第4章汇编语言程序设计1.已知在BUF的起始处保存有N个字符的ASCII码,编写汇编语言程序实现,将这组字符串传送到缓冲区BUFR中,并且使字符串的顺序与原来的顺序相反。

解:BUF DB "BONJOUR_BELLE"BUFR DB 100 DUP(?)MOV CX, NLEA SI, BUFLEA DI, BUFRADD DI,CXDEC DIL1:MOV AL,[SI]MOV [DI],ALINC SIDEC DILOOP L12.利用移位、传送和相加指令实现AX的内容扩大10倍。

解:将扩大后的结果放在DX:AX中,注意到10×AX=8×AX+2×AX。

XOR DX,DXSHL AX, 1RCL DX, 1MOV BX,AXMOV CX,DXSHL AX, 1RCL DX, 1SHL AX, 1RCL DX, 1ADD AX, BXADC DX, CX3.在缓冲区V AR中连续存放着3个16位的无符号数,编写程序实现将其按递增关系排列;如果V AR中保存的为有符号数,则再编写程序实现将其按递减关系排列。

解:V AR DW 1236,-432,3900XOR SI,,SIMOV AX,V AR[SI]CMP AX, V AR[SI+2]JAE L1XCHG AX, V AR[SI+2]L1:CMP AX, V AR[SI+4]JAE L2XCHG AX, V AR[SI+4]L2:MOV V AR[SI], AXMOV AX,V AR[SI+2]CMP AX, V AR[SI+4]JAE L3XCHG AX, V AR[SI+4]L3:MOV V AR[SI+2], AX4.编写程序段实现将AL和BL中的每一位依次交叉,得到的16位字保存在DX中,例如(AL)=01100101B,(BL)=11011010B,则得到的(DX)=10110110 10011001B。

微机原理及运用第4章

微机原理及运用第4章

关系运算的操作数也必须为数字操作数。当关系成立时, 其结果为全 1;当关系不成立时,其结果为全 0。 汇编语言中的表达式不能构成单独语句, 只能是语句的 一个部分, 例如: MOVAX, BUF+2
ADDAL, VAL AND 0FH
JMPAGAIN+3 MOVBL, VB LE VA
4.1汇编语言基本概念
4.1.1汇编语言与机器语言
我们已经学过高级语言,例如BASIC语言或FORTRAN 语言,无论哪种语言,它都规定了一系列用于编写程序的语 句和应该遵循的语法规则。人们根据一种语言给定的语句及 其语法规则就可以写出程序,计算机则通过执行已编好的程 序来完成人们要求它完成的各种复杂功能。汇编语言也一样, 根据汇编语言的语句及其语法规则可以写出汇编语言程序。 但汇编语言与高级语言有较大的区别,汇编语言中的语句与 机器的种类和型号密切相关。
部分, 汇编时不形成任何目标码。注释必须以分号“;”开 头。 它可以作为语句的一个部分,也可以作为一个单独的语 句。
4.1.3汇编语言中的常数与表达式
1. 常数 常数可以分数值常数和字符串常数两类。数值常数按其 基数的不同,可以有二进制数、八进制数、十进制数、十六 进制数等几种不同的表示形式, 汇编语言中采用不同的后缀 加以区分。 B: 表示二进制数。 例如, 10110011B。
表示一条指令的这些字符常称为助记符。 我们必须指出, 采用助记符写出的程序,机器是不能直接执行的,因为上面 我们已经指出, 处理器在设计时是按二进制指令码考虑的。 所以,采用汇编语言编写的程序在执行前还必须将其“翻译” 成机器语言。通常将采用助记符指令写成的程序,称为源程 序,将它翻译成的机器语言程序称为目标程序。将汇编语言 的源程序翻译成目标程序的过程称为汇编过程或简称汇编。 汇编过程通常是由计算机完成的。它是通过执行一个专门完 成汇编的软件——称为汇编程序来实现的。既然写出的源程序 要由汇编程序将其翻译后才能执行,所以,我们编写的源程 序必须符合汇编程序的一系列要求或者规则,只有这样,你 的程序才能被正确地“翻译”。

微机原理与接口技术 第4章课后作业答案.

微机原理与接口技术 第4章课后作业答案.
第4章 汇编语言程序设计 4.1请分别用DB 、DW 、DD伪指令写出在DATA开始的连续8个单元中依次存放数据 11H 、22H 、33H 、44H 、55H 、66H 、77H 、88H的数据定义语句. 解:DB,DW,DD伪指令分别表示定义的数据为字节类型、字类型及双字型.其定义形式为 : DATA DB 11H,22H,33H,44H,55H,66H,77H,88H DATA DW 2211H,4433H,6655H,8877H DATA DD 44332211H,88776655H 4.2若程序的数据段定义如下,写出各指令语句独立执行后的结果: DSEG SEGMENT DATA1 DB 10H,20H,30H DATA2 DW 10 DUP(?) STRING DB ‘123’ DSEG ENDS (1) MOV AL,DATA1 (2) MOV BX,OFFSET DATA2 (3) LEA SI,STRING ADD DI,SI 解: (1) 取变量DATA1的值. 指令执行后,(AL)=10H. 1 (2) 变量DATA2的偏移地址. 指令执行后,(BX)=0003H.
6
4.7执行下列指令后,AX寄存器的内容是多少? TABLE DW 10,20,30,40,50 ENTRY DW 3 . . . MOV BX,OFFSET TABLE ADD BX,ENTRY MOV AX,[BX] 解:(AX)=1E00H 4.8 编写程序段,将STRING1中的最后20个字符移到STRING2中(顺序不变)。 解:首先确定STRING1中字符串的长度,因为字符串的定义要求以‘$’符号结尾, 可通过检测‘$’符确定出字符串的长度,设串长度为COUNT,则程序如下: LEA SI,STRING1 LEA DI,STRING2 ADD SI,COUNT-20 MOV CX,20 CLD REP MOVSB

微机原理第4章习题与答案

微机原理第4章习题与答案
(2)PRGM SEG
……
PRGM ENDS
(3)ALPHA EQU BETA
(4) COUNT EQU 100
COUNT EQU 65
(5) GOON DW 10DUP(?)
……
JMP GOON
答案:
(1)字节变量,范围在0~255
(2)定义段的伪指令为SEGMENT
(3)BETA必须先定义
(4)EQU不能重复定义,在下一次定义前必须用PURGE撤消
MOV BX, F1
答案:
(1)
DATA SEGMENT PARA 'DATA' AT 46H
QA EQU 255;QA=255
QA1=QA GT 3000;255大于3000,命题假,QA1=0
QA2=0FFFH;QA2=0FFFH
QA3 EQU QA2 XOR 255;QA3=0FFFH⊕0FFH=0F00H
AND AX, 0FFH;AX=0045H
MOV BX, WORD PTR G1;BX=0FF20H
MOV BX, 255 AND 0FH;BX=000FH
ADD AX, OFFSET F2;AX=1245H
MOV BX, F1;BX=2211H
4.以下程序的执行结果是_______。
ADB‘1234’
BDW5 DUP(2,3 DUP(0))
CDW‘AB’,’C’,’D’
L1:MOVAL,TYPE B
MOVBL,LENGTHB
MOVAH,SIZE A
MOVBH,SIZE C
MOVCL,TYPEL1
MOVCH,SIZEB
答案:AX=0102H,BX=0205HCX=0AFFH

微机原理答案

微机原理答案

微机原理答案计算机应用基础第 1 章基础知识1.1 计算机中常用的计数制有哪些?解:二进制、八进制、十进制(BCD)、十六进制。

1.2 什么是机器码?什么是真值?解:把符号数值化的数码称为机器数或机器码,原来的数值叫做机器数的真值。

1.3 完成下列数制的转换。

解:(1)166,A6H(2)0.75(3)11111101.01B, FD.4H(4) 5B.AH, (10010001.011000100101)BCD1.4 8 位和 16 位二进制数的原码、补码和反码可表示的数的范围分别是多少?解:原码(-127~+127)、(-32767~+32767)补码 (-128~+127)、(-32768~+32767)反码(-127~+127)、(-32767~+32767)1.5 写出下列真值对应的原码和补码的形式。

(1)X= -1110011B(2)X= -71D(3)X= +1001001B解:(1)原码:11110011 补码:10001101(2)原码:11000111 补码:10111001(3)原码:01001001 补码:010010011.6 写出符号数 10110101B 的反码和补码。

解:11001010,110010111.7 已知 X 和 Y 的真值,求[X+Y]的补码。

(1)X=-1110111B Y=+1011010B(2)X=56D Y= -21D解:(1)11100011(2)001000111.8 已知 X= -1101001B,Y= -1010110B,用补码求 X-Y 的值。

解:111011011.9 请写出下列字符的 ASCII 码。

4A3-!解:34H,41H,33H,3DH,21H1.10 若给字符 4 和 9 的 ASCII 码加奇校验,应是多少?解:34H,B9H1.11 上题中若加偶校验,结果如何?解:B4H,39H1.12 计算下列表达式。

(1) (4EH+10110101B)x(0.0101)BCD=((2)4EH-(24/08H+’B’/2)=()B解:)D(1) 129.5D(2)101010B第 2 章微型计算机基础2.6 简述 CPU 执行程序的过程。

微机原理8086汇编语言程序设计

微机原理8086汇编语言程序设计

;这是一个乘10子程序
;使用寄存器AX
;入口:AX,出口:AX
proc far
push bx
;保护现场
pushf
add ax,ax
;2ax

mov bx,ax
;2ax ?bx

add ax,ax
;4ax

add ax,ax
;8ax

add ax,bx
;10ax

popf
;恢复现场
pop bx
ret
endp
第四章 8086汇编语言程序设计
? 几个概念 ? 8086汇编语言的语句 ? 8086汇编中的伪指令 ? 8086汇编中的运算符 ? 汇编语言程序设计 ? 宏定义与宏调用 ? 系统调用
几个概念
? 汇编语言 ? 汇编语言源程序 ? 汇编 ? 汇编程序
4.1 8086汇编语言的语句
汇编语言由指令性语句和指令性语句组成 ? 一、指令性语句格式
CODE SEGMENT
;定义代码段
ASSUME DS:DATA , CS: CODE
START: MOV AX , DATA
;初始化DS
MOV DS , AX
……
MOV AX , 4C00H ;返回DOS
INT 21H
CODE ENDS
;代码段结束
END START
;源程序结束
;段属性说明
? 特点 ? 程序分段 ? 语句由指令性和指示性语句组成 ? 两种程序框架
? 3、 ORG伪指令、地址计数器 $
ORG伪指令格式: ORG <表达式>
? 4、END 表示源代码结束 格式为: END 常数或表达式.

微机原理与汇编语言复习资料

微机原理与汇编语言复习资料

微机原理与汇编语⾔复习资料1.计算机由运算器,控制器,存储器,输⼊设备,输出设备等5⼤基本部件组成。

2.冯诺依曼提出存储设计思想是:数字计算机的数制采⽤⼆进制,存储程序,程序控制。

3.计算机的基本组成框图:4.微型计算机系统的3个层次:(1)微处理器:也叫微处理机,它本⾝并不是计算机,微处理器是微型计算机的核⼼部件,⼜叫中央处理器(CPU),微处理器包括算术逻辑部件,控制部件和寄存器组3个基本部分;(2)微型计算机:简称微机,是指以CPU为核⼼,并配以存储器(ROM和RAM),输⼊输出接⼝电路,系统总线及相应的外部设备⽽构成的完整的,可独⽴⼯作的计算机。

(3)微型计算机系统:是以微型计算机为核⼼,再配以相应的外围设备,电源,辅助电路和控制微型计算机⼯作的软件⽽构成的完整的计算机系统。

(4)三者的关系:密切的相互依存关系。

4.机器字长:指计算机能同时进⾏多少位的⼆进制数运算。

5.操作系统:是系统软件中最重要的部分,功能是对计算机系统的全部硬件和软件资源进⾏统⼀管理、统⼀调度、统⼀分配。

6.存储程序⼯作原理(存储程序、程序控制)(1)计算机系统由运算器、控制器、存储器、输⼊设备、输出设备组成,并规定了他们的功能(2)程序和数据在计算机中⽤⼆进制数表⽰(3)计算机的⼯作过程是由存储程序控制的7.⼀个字节等于(8)个⼆进制位,1KB=1024字节。

8.在计算机内部,⼀切信息的存取、处理与传送均采⽤——⼆进制9.⼀个完整的计算机应包括——硬件系统和软件系统10.微型计算机硬件系统的性能主要取决于——微处理器11.微处理器的数据基本单位为字。

⼀个字的长度通常为——16位⼆进制。

12.计算机字长所取决的是——数据总线宽度。

13.8086的内部结构从功能上分成两个单元1.总线接⼝单元BIU:管理8086与系统总线的接⼝;负责CPU对存储器和外设进⾏访问2.执⾏单元EU:负责指令的译码、执⾏和数据的运算两个单元相互独⽴,分别完成各⾃操作,还可以并⾏执⾏,实现指令预取(指令读取和执⾏的流⽔线操作)14.8088有8个通⽤的16位寄存器(1)数据寄存器:累加器AX;基址寄存器BX;计数寄存器CX;数据寄存器DX;(2)变址寄存器:源变址寄存器SI;⽬的变址寄存器DI;(3)指针寄存器:堆栈指针SP;基址指针BP;(4)专⽤寄存器:指令指针IP;FR标志寄存器FR;(5)段寄存器:代码段寄存器CS;数据段寄存器DS;堆栈段寄存器SS;附加段寄存ES15.ALE(地址所存允许信号)输出、三态、⾼电平有效;ALE引脚⾼有效时,表⽰复⽤引脚:AD7 ~ AD0和A19/S6 ~ A16/S3正在传送地址信息;由于地址信息在这些复⽤引脚上出现的时间很短暂,所以系统可以利⽤ALE引脚将地址锁存起来。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

4.1.4 常量、变量、标号、表达式 2、变量


变量是与一个数据项的第一字节相对应的标 识符。它表示该数据项第一字节在现行段中 的偏移量。变量的值在程序运行期间可随时 修改。 变量有三个属性: 段地址 偏移地址 类型(DB DW DD DQ DT)
4.1.4 常量、变量、标号、表达式 4、表达式



汇编语言非常接近机器语言程序,通过编制汇编语言 程序,可以更清楚地了解计算机的工作过程。在此基础 上,程序设计人员更能充分地利用机器硬件的全部功能, 发挥机器长处。 现在的微机系统中,底层的一些功能仍然靠汇编语言程 序来实现。例如机器的自检、系统的初始化、实际的输 入输出操作,至今仍然是用汇编语言编制的程序实现的。 汇编语言程序的效率通常高于高级语言程序。“效率” 指的是程序的目标代码的长短和程序运行速度。
说明: 名字可以是符号常量名、变量名、过程名、段名 等,名字后面不能有“:”; 伪指令命令助记符共有40多个,按功能不同分 成八类,本章介绍的常用五类共20多个; 操作数可少到一个没有,多到两个以上,操作数 之间须用逗号分隔;
4.1.3 汇编语言语句种类及其格式
3、宏指令语句格式 [宏名] 宏操作助记符 [操作数][; 注释] 说明: 宏名即宏指令名,是一标识符,宏名后面不 能有“:”; 宏操作助记符共有8个,分别是MACRO、 ENDM、EXITM、LOCAL、REPT、IRPC、 IRP、PURGE; 其余同伪指令语句。
4.1.4 常量、变量、标号、表达式
(2)、合成运算符(属性运算符)
① PTR:规定存储单元的类型。 类型 PTR 表达式 类型有:BYTE、WORD、DWORD、NEAR、 FAR。 ② THIS:类型指定运算符 例:XYZ EQU THIS BYTE;把字节类型BYTE 属性赋予变量XYZ。
4.1.4 常量、变量、标号、表达式
4.1.3 汇编语言语句种类及其格式
一个汇编语言源程序中有三种基本语句:

指令语句

是机器指令的符号表示,经汇编程序汇编后能产生 对应的机器指令代码,在形成执行文件时执行;
只是给汇编程序提供一些控制信息,帮助汇编程序正确 汇编指令性语句,在汇编时被执行,没有对应的机器码; 是指令性语句和伪指令语句的复合体,是按照一定规则, 根据用户需要定义的新指令;在汇编时被展开,在形成 执行文件时执行其展开体。
4.1.3 汇编语言语句种类及其格式
标号的组成规则: 必须由字母、数字及特殊符号 (?,.,@,-,$)组成,且必须 以字母开头; 字符总数限制在31个以内; 不能使用属于系统专用保留字。
4.1.3 பைடு நூலகம்编语言语句种类及其格式
2、伪指令语句格式 [名字] 伪指令助记符 [操作数][; 注释]
表达式由运算符号和运算对象组成,运算 符号可分五类: 算术运算符、逻辑运算符、关系运算符、 分析运算符、合成运算符
4.1.4 常量、变量、标号、表达式
(1)、分析运算符(取值运算符) SEG、OFFSET、LENGTH、 SIZE、TYPE
OFFSET 变量名或标号;取出变量名或标号所在段的偏 移地址 SEG 变量名或标号;取出变量名或标号所在段的段地址 TYPE 变量名或标号;取出变量名或标号的类型;(字 节1、字2、双字4) SIZE 变量名;取出变量的大小; SIZE = LENGTH* TYPE LENGTH 变量名;取出变量的长度;(无DUP时为1, 有时为DUP前面的值)
2、段寄存器定义伪指令ASSUME 格式: ASSUME 段寄存器:段名 [,段 寄存器:段名…..]

功能:指明段与段寄存器之间关系 出现在代码段中可执行汇编指令之前,用于指明逻 辑段应以相应段寄存器寻址。一个汇编语言源程序 至少有一个ASSUME伪指令指出CS对应的逻辑代 码段。但应注意这不是填装。

三、段定义伪指令

说明: 5、‘CLASS’类别,连接时用于组成段组名。
(1) 指令对类别相同的各模块中的所有段如何处理,LINK程序把各 模块中分类名相同的所有段(段名未必相同)放在连续的存储区 域内,但仍然是不同的段。 (2)类别相同的各个段在链接时,先出现的在前,后出现的在后。 (3)注意点:类别应用单引号括起来。
ARR1的偏移地址是 0
ARR2的偏移地址是 4
ARR2
MOV AX , ARR2 ; (AX) = ?
MOV AX , OFFSET ARR2 ; (AX) = ? MOV AL , BYTE PTR ARR2 + 5 ;(AL) = ? MOV AX ,WORD PTR ARR1 ; (AX) = ?
三、段定义伪指令
1、SEGMENT / ENDS
格式: 段名 SEGMENT [定位类型][组合类型[‘类别’]
….. …..
段名
ENDS
三、段定义伪指令

说明: 1、seg_name为本段起始名字,一定要有。汇编语言根据段名寻址该段。 2、SEGMENT/ENDS为该段的起始和结束。 3、 align_type对齐类型(定位类型) (1)para指定该段从小段边界开始; (2)byte指定该段从任一位置开始; (3)WORD指定该段从字边界开始; (4)page指定该段从页边界开始;

伪指令语句


宏指令语句

4.1.3 汇编语言语句种类及其格式
1、指令语句格式
[标号:][前缀指令] 助记符 [操作数][;注释]
说明:
① 方括号表示的成分可以选用或缺省; ② 标号是后面紧跟“:”的一个标识符,标号代表该行指令在 存储器中的首地址,标号可作为转移指令和调用指令的一个 操作数; ③ 前缀如重复前缀、总线封锁前缀等; ④ 指令助记符 ⑤ 操作数可以是一个、两个或没有,由指令类型决定,若有两 个操作数,前面为目的操作数,后面为源操作数,中间用逗 号隔开; ⑥ 注释是以“;”开始的字符串,不影响程序的汇编与执行, 仅用于增加源程序的可读性。
③算术运算符 +、-、*、/、MOD
④ 逻辑运算符
AND、OR、NOT、XOR
4.1.4 常量、变量、标号、表达式
⑤关系运算符
相等(EQ)、不等(NE)、小于(LT)、大于(GT)、 小于或等于(LE)、大于或等于(GE) 注:参加关系运算的两个操作数必须是数据或者是同一段中的 存储单元地址,结果总是一个数值。打算能够关系成立时, 其结构为全1,反之为全0。
0 1 2 3 4
‘A’ ‘D’ ‘C’
... ...
...
例5 用数组定义变量 ARR1 DB 00H,11H,22H,33H ARR2 DW 3456H,1024,25×25,1000/3,10A0
ARR1
00H 11H 22H 33H 56H 34H 00H 04H 71H 02H 4DH 01H A0H 10H 0 1 2 3 4 5 6 7 8 9 A B
三、段定义伪指令
说明: 6 、使用段定义语句的两点说明



a.源程序模块中的某一段,可使用一对SEGMENT和ENDS编 写完毕,也可以分为多对SEGMENT和ENDS编写,只要使用 相同的段名即可。但这些段的SEGMENT语句的组合方式、定 义方式、分类名应相同,不得相互矛盾,或者以先出现 SEGMENT语句为准,其余均省略不写。 b.LINK程序链接时,先处理组合类型,后处理定位类型,再 处理分类类型。
【重点】

1. 汇编语言语法结构; 2. 伪指令; 3. DOS功能调用; 3. 汇编语言程序调试;
【难点】

DOS功能调用; 汇编语言程序调试;

【知识点】

4.1 汇编语言的基本概念 4.2 汇编语言程序设计 4.3 汇编语言源程序的汇编、连接和装入运行



4.4 DOS及BIOS功能调用 4.5 汇编语言源程序结构及汇编 4.6 汇编语言源程序设计实例
例:MOV BX,PORT LT 5; MOV BX,((PORT LT 5) AND 20) OR ((PORT GE 5) AND 30) 当PORT 小于5时,上述指令等效于 MOV BX,20; 当PORT 大于或等于5时,上述指令等效于 MOV BX,30;
4.1.5 伪指令
一、数据定义伪指令(变量定义) 格式:变量名 DB(或DW、DD等) 操作数 [,操作数….] 例1 FIRST DB 5AH FIRST 5AH 常数 SECOND DW 1122H SECOND 22H 11H THREE DD 2A004455H THREE 55H 例2 ONE DB ‘ ABCDEF ’ 字符串 44H 00H TWO DW ‘ AB ’, ‘CD ’ 2AH 例3 用问号定义不确定的值,常用来存放结果。 ABOV DB ? 41H ONE SUM DW ? 42H 例4 TAB1 DB 10 DUP (?) ARRAY DB 100 DUP (3 DUP (8),6) 46H TWO ‘ B’ 次数 重复 内容
4.1 汇编语言的基本概念
4.4.1 计算机程序设计语言的演变
1、机器语言(Machine Language) 2、汇编语言( Assembly Language ) 3、高级语言( High-level Language ) 3、面向对象语言
4.1.2 为什么要用汇编语言编写程序
为什么要用汇编语言编写程序,主要有以下几点:
4.1.4 常量、变量、标号、表达式
1、常数
指令中出现的那些固定值,分为数值常数和字符 串常数。 数值常数分为: 二进制数 八进制数(B) 十进制数 (Q) 十六进制数 (H) 字符串常数是用单引号‘’括起来的一串字符。
4.1.4 常量、变量、标号、表达式
相关文档
最新文档