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

MOV BL,05H OR 30H
;35H→BL
MOV CX,NOT 00FFH
;0FF00H→CX
MOV DX,789AH XOR 000FH
;7895H→DX
13/),不等(NE),小于(LT),大于(GT), 小于等于(LE)及大于等于(GE)。
•运算结果成立时逻辑值为真,用0FFFFH表示;
汇编程序不区分大小写
3/96
汇编语言语句统一格式规定
指令性语句、伪指令语句和宏指令语句的统一格式:
[名字项] 操作项 [操作数项] [;注释项]
1.名字项:最多由21个字符组成。可由下列字符组成。
①字母A~Z、a~z
②数字0~9
③特殊符号?、·、@ 、- 、$等
注意:
➢ 名字项的第一个字符不可以是数字,必须是字母或特殊字
符,但是问号本身不能单独作为名字;
➢ 如果用到特殊符号,则它必须是首字符。
➢ 汇编语言的专用保留字、寄存器名、8088/8086汇编语言中
的指令助记符、伪指令名、表达式中使用的运算符和属性
运算符等均不能作为名字项,否则汇编会给出错误信息;
➢ 名字项在程序中不能重复定义。
4/96
名字项属性
(1) 段属性:可用SIG伪指令求出 此属性用于定义标号和变量的段起始地址。标号通常在代码 段CS中定义,变量通常在DS、ES和SS段中定义。
2 DATA SEGMENT;
数据段
┇
3 DATA ENDS ;…………………………………堆栈段说明 4 STACK SEGMENT PARA STACK′STACK′;堆栈段
┇
5 STACK ENDS
;……………………………………………………………代码段说明
微型计算机原理 第5章 80868088汇编语言程序设计

第5章
8086/8088汇编语言程序设计
§5.4.3 循环控制的方法
1. 用计数控制循环 特点:直观、方便,易于程序设计。 适用于两种情况(1)循环次数已知;
(2)循环次数是前面运算或操作的结果
或者已被存放在某内存单元中。 例5.6:试编制程序统计字节变量VAR中1的个数,并将它 存入COUNT单元中。 解:逐位进行测试,根据最低位是否为 1 来计数,然后用移位 的办法把各位数逐次移到最低位去,判断其是否为 1 ,共需要 测试8次。程序流程如图5.11所示:
JA
ERROR
第5章
8086/8088汇编语言程序设计
LEA SUB SHL XOR ADD JMP
BX,TAB ;取地址表首址 AL,30H AL,1 ;段内转移乘以2,段间转移乘以4 AH,AH ;AH清零 BX,AX WORD PTR [BX] ;产生多分支转移
A0:
LEA
MOV INT
DX,S0
通常有两种方法控制循环:用计数控制循环,用条件控制循环。
第5章
8086/8088汇编语言程序设计
§5.4.2 循环程序的结构形式
循环程序有DO-WHILE和DO-UNTIL两种结构。
DO-UNTIL结构是先执行循环 体然后再判断控制条件,不满足 条件则继续执行循环操作,一旦 满足条件则退出循环。
DO-WHILE结构是把对循环 控制条件的判断放在循环的入口, 先判断条件,满足条件就执行循 环体,否则退出循环。
COUNT DB ? DATA CODE ENDS SEGMENT
SHR AL,1 ;逻辑右移1位 LL ;循环控制 COUNT,BL ;COUNT←计数值 AH,4CH ;返回DOS
北方工业大学微机原理第4讲 8086 8088汇编语言程序设计

汇编语言源程序
用助记符编写
源程序的编译程序 汇编程序 机器语言 目标程序
4
汇编程序
汇编语言 源程序
微机原理与接口技术——第4讲 汇编语言程序设计
4.0 汇编语言源程序——基础知识
为什么要用汇编语言? 程序短小,节省内存; 执行速度快; 用户可直接对硬件实施控制。 实时性要求很高的程序常常还采用汇编语言程序。
符号地址 定义变量类型
定义变量值 及区域大小
29
微机原理与接口技术——第4讲 汇编语言程序设计
1. 数据定义伪指令助记符
DB DW
定义的变量为字节型 定义的变量为字类型(双字节)
DD
DQ
定义的变量为双字型(4字节)
定义的变量为4字型(8字节)
DT
定义的变量为10字节型
30
微机原理与接口技术——第4讲 汇编语言程序设计
指示性语句中至 少有一个操作数
13
微机原理与接口技术——第4讲 汇编语言程序设计
3. 标号与名字
标号后有冒号,在指令性语句前; 名字后不加冒号,在指示性语句前。 英文字母、数字及专用字符组成,最大长度不能超过31 个,且不能由数字打头,不能用保留字(如寄存器名,指 令助记符,伪指令)。
14
2. 汇编语言语句格式
指令性语句:
[标号:] [前缀] 助记符 [操作数],[操作数] [ ;注释]
指令的符号地址 标号后要有冒号
操作码 注释前加分号
12
微机原理与接口技术——第4讲 汇编语言程序设计
指示性语句格式
[名字] 伪指令助记符 操作数 [,操作数,…] [ ;注释]
(微机原理)第4章8086汇编语言程序设计

逻辑运算指令的编写与使用
逻辑操作
包括与、或、异或、非等运算。
测试指令
对某一位或某一组存储单元进行 运算和测试。
字符串操作
适合处理字符串拼接、截取等操 作。位操作指令的编写与使用 Nhomakorabea1
设置指令
包括STC、STD等,可设置标志寄存器中
输入输出
2
相应的位。
指令IN、OUT等,可实现从外部设备的输
入和输出。
堆栈是一种重要的存储结构,在程序中 起到了重要的作用。
寄存器的种类及其功能
通用寄存器
8个通用寄存器,用于存储数据 或内存地址。
计数器与时序寄存器
用于计数和处理时间信息。
状态标志寄存器
记录程序的运行状态,如进位标 志、零标志、符号标志等。
数据传输指令的编写与使用
MOV
用于数据传输,是汇编程序常用的一种指令。
3
控制指令
HLT、WAIT等控制指令,可控制程序的执 行。
转移指令的编写与使用
JMP
无条件转移指令,直接跳转到指定的地址。
JE
条件转移指令,按指定条件进行转移操作。
CALL
过程调用指令,可将参数传递给被调用的程序。
RET
过程返回指令,将跳转到调用指令后面的位置。
输入输出指令的编写与使用
IN 指令
从设备或端口读入数据到指定的 操作数中。
O U T指令
将指定的操作数中的数据送到设 备或端口中。
PUS H /PO P指令
将寄存器的值压入堆栈或从堆栈 中取出数据。
堆栈操作的编写与使用
1
PUSHA/POPA
将16个通用寄存器的值一次性入栈或出栈。
2
第三讲8086汇编语言

XCHG BH, BL ;√ XCHG AX, 1122H ;× XCHG DS, AX ;× XCHG [SI], BP ;√ XCHG [SI], [DI] ;×
4
3.3 常用汇编指令
D S: 2000H 01H
2001H 02H
CF为前面指令产生的CF
❖格式:ADC DET ,SRC
❖功能:(DST)+(SRC) +CF DST ;
❖要求:同ADD
通用Regs ±
❖ADC指令主要用于多字节加法运算
IMM 通用Regs
MEM
❖ 例:两个32位数相加
0123FAB5H+0ABC212AH=0BE01BDFH 0123 FAB5
;√
MOV 2000H, AX
; × 目的不能为立即数
MOV DS:2000H, AX ; √
3
3.3 常用汇编指令
一、数据传送类指令
2.数据交换指令
❖格式: XCHG DST ,SRC ❖功能:将源 (SRC)和目的(DST)内容互换;
操作结果不影响F标志位。 ❖要求:只在两个通用Regs之间、通用Regs 和MEM之间互
❖ 说明:LEA的源操作数寻址方式为立即数寻址;
LDS、LES的源操作数寻址方式为存储器寻址。
❖例2:设 D S : 1 0 0 0 H 1 0 H 执行: MOV BX, 1000H
1001H 00H
LDS SI, [BX] ;间接寻址
1 0 0 2 H D 2 H 后, NhomakorabeaX=1000H
1003H 13H
➢操作数类型明确,不能出现二义性(即不能模糊)。
第2章 8086微处理器与汇编语言——_微机原理及单片机寻址方式

寄存器寻址 操作数存放在CPU的内部寄存器reg中:
8位寄存器r8: AH、AL、BH、BL、CH、CL、DH、DL 16位寄存器r16: AX、BX、CX、DX、SI、DI、BP、SP 4个段寄存器seg: CS、DS、SS、ES
寄存器名表示其内容(操作数)。 注意:源操作数和目的操作数的位数必须相同。
操作码 操作数 ...... 操作数
8086指令格式中的操作数有:零操作数、一操作数 和二操作数三种形式。 例: RET INC CX ADD AX , BX
寻址方式※
数据寻址方式
立即数寻址 寄存器寻址
地址寻址方式
直接寻址 寄存器间接寻址 寄存器相对寻址 基址变址寻址 相对基址变址寻址
演示
MOV AX, [SI+06H]
;AX←DS:[SI+06H]
MOV AX, 06H[SI]
;AX←DS:[SI+06H]
基址变址寻址
有效地址由基址寄存器(BX或BP)的内容加上 变址寄存器(SI或DI)的内容构成: 有效地址=BX/BP+SI/DI 段地址对应BX基址寄存器默认是DS,对应BP 基址寄存器默认是SS;可用段超越前缀改变。
计划学时:2
指令的基本格式
计算机中指令由操作码字段和操作数字段两部分 组成。
操作码字段―指示计算机要执行的操作。 操作数字段―指出在指令执行操作过程中所需要的数据。 操作数本身 操作数地址或是地址的一部分 可以是指向操作数地址的指针或其他有关 操作数的信 息
指令的一般格式:
直接寻址
微机原理第4章 8086汇编语言程序设计

33
A1:
…… MOV AX , 4B6CH MOV CX , 0 ;统计除法次数 MOV BX , 10 ; MOV DX , 0 ;被除数扩展为32位 DIV BX PUSH DX ;将转换好的数存入堆栈 INC CX OR AX , AX ;转换直到商为0 JNZ A1 ……
34
4、表格处理题 、
二、指示性语句格式
[标识符(名字)] 指示符(伪指令) 表达式
三、有关属性
存储器操作数的属性有三种:段值、段内偏移量 和类型。
2
4.2 8086汇编中的伪指令
一、 符号定义语句
1、等值语句 格式:符号名 EQU 表达式 例: ⑴ PORT EQU 1234 ⑵ BUFF EQU PORT+58 ⑶ MEM EQU DS:[BP+20H] ⑷ COUNT EQU CX ⑸ ABC EQU AAA
……
28
2、逻辑处理题
例1:将寄存器AL中高、低4位交换 ……
MOV AL , 0ABH MOV CL , 4 ROL AL , CL ;移出位补充移空位4次 ……
29
例2:将AX中的内容按相反顺序存入BX 中
…… MOV AL , 1234H MOV CX , 16 SHL AX , 1 ;移出的位进到CF RCR BX , 1 ;AX中移出的位进入BX LOOP AA1 ……
AA1:
30
3、代码转换例题
例1:编程将以$结束的字符串中的小写字母 改为大写字母。
DATA STR DATA SEGMENT DB ‘heLLo,eveRyboBY !’,’$’ ENDS ……
31
A1:
NEXT:
LEA MOV CMP JE CMP JB CMP JA SUB MOV INC JMP ……
微机原理第4章 8086汇编语言程序设计a

几个概念
汇编语言:用指令的助记符、符号地址、标号等书写程序 汇编语言 的语言。汇编语言实际上是机器语言的一种符号表示。 汇编语言源程序:用汇编语言编写的程序。 汇编语言源程序 汇编:将汇编语言源程序翻译成机器语言程序的过程。 汇编 汇编程序:完成汇编任务的程序,是一种计算机应用程序。 汇编程序 汇编程序除完成翻译任务外,还完成:(1)按用户要求自动 分配存储区,(2)自动把各种进制转换成二进制,(3)计算表 达式的值,(4)对源程序进行语法检查并给出语法出错信息。
DATA ENDS 说明:若不使用ORG语句,变量D1的第一个数10的偏移 地址为0000H;由于ORG的使用,现在变为1000H。
4.1.2 指示性语句格式
[标识符(名字)] 指示符(伪指令) 表达式[;注释] 标示符段——由字母等表示的符号,其性质由伪指令指定。 指示符段——是汇编程序规定并执行的命令,能将标示符定 义为变量、程序段、常数、过程等,且能给出其属性。 表达式段——有数字表达式和地址表达式两种。
4.1.3 存储器操作数的属性
• 例:假设源程序的主程序有5个逻辑段,还有一个子程序,包括 个 个逻辑段, 假设源程序的主程序有 个逻辑段 还有一个子程序,包括4个 逻辑段,段名和类别分别如下左图所示。 逻辑段,段名和类别分别如下左图所示。当将上述主程序和子程序 进行连接时,各逻辑段装入内存的顺序如下右图所示。 进行连接时,各逻辑段装入内存的顺序如下右图所示。 主程序 段名 类别名 STK1 'STACK' CODE1 无 DATA1 'BUFFER' DATA2 'TABLE' DATA3 'BUFFER' 子程序 段名 类别名 DATA4 'TABLE' DATA5 'BUFFER' STK2 'STACK' CODE2 无
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理8086汇编语言
微机原理和8086汇编语言是计算机科学与技术领域中的重要基础知识,对于理解计算机的运行原理和编程开发具有关键作用。
本文将全面介绍微机原理和8086汇编语言的基本概念、功能特点以及应用实践。
一、微机原理概述
微机原理是指微型计算机的构成、工作原理、体系结构和外围设备等的基本原理。
微机由中央处理器(CPU)、存储器和输入输出设备等组成,其内部实现了数据的存储和处理,并能够与外部环境进行交互。
微机原理的研究与应用对于计算机硬件的设计和控制至关重要。
二、8086汇编语言介绍
8086汇编语言是在微机原理基础上发展起来的一种低级程序设计语言。
它以机器指令的形式直接对CPU发出控制命令,实现数据处理和操作。
8086汇编语言具有直观、高效的特点,可以对计算机内部各种硬件资源进行精细控制,实现复杂的算法和功能。
三、8086汇编语言的基本语法
8086汇编语言的基本语法包括指令、寻址方式和操作数等。
指令通常由操作码和操作数组成,用于执行特定的操作。
寻址方式指定操作数在内存中的位置,可以是直接寻址、寄存器间接寻址、立即数寻址等多种方式。
操作数表示要进行操作的数据,可以是寄存器、内存单元或立即数。
四、8086汇编语言的常用指令
8086汇编语言提供了丰富的指令集,包括数据传输指令、算术运算指令、逻辑运算指令、条件转移指令、无条件转移指令等。
通过这些指令的组合和调用,可以实现各种复杂的功能和处理需求。
五、8086汇编语言的应用实践
8086汇编语言广泛应用于嵌入式系统设计、驱动程序开发、操作系统编程以及性能优化等领域。
在嵌入式领域,汇编语言可以直接操作硬件资源,实现高效的数据处理和控制;在操作系统编程中,汇编语言可以直接访问操作系统内核,实现底层功能的扩展和优化。
六、8086汇编语言的优势与不足
8086汇编语言具有高效、灵活的优势,可以直接操作硬件资源和内存,实现高性能的程序。
然而,汇编语言的开发和调试困难,可读性低,维护成本高,对程序员的要求较高。
七、8086汇编语言的未来发展趋势
随着计算机科学与技术的不断发展,汇编语言作为低级别的编程语言,逐渐被高级语言所取代。
然而,在嵌入式系统和底层优化领域,汇编语言仍然具有重要地位和应用前景。
结论
微机原理8086汇编语言是近代计算机科学与技术的基础之一,对于理解计算机的运行原理和实现高效的编程开发具有关键作用。
通过
本文的介绍,读者可以对微机原理和8086汇编语言有一个初步的认识,并对其应用实践和未来发展趋势有一定了解。
在今后的学习和工作中,我们应该深入掌握这些知识,不断提升自己的技术水平。