第3章 汇编语言_4
汇编语言程序设计(第四版)第3章【课后答案】
汇编语言程序设计第四版【课后习题答案】--囮裑為檤第3章汇编语言程序格式〔习题3.1〕伪指令语句与硬指令语句的本质区别是什么?伪指令有什么主要作用?〔解答〕伪指令语句与硬指令语句的本质区别是能不能产生CPU动作;伪指令的作用是完成对如存储模式、主存变量、子程序、宏及段定义等很多不产生CPU动作的说明,并在程序执行前由汇编程序完成处理。
〔习题3.2〕什么是标识符,汇编程序中标识符怎样组成?〔解答〕为了某种需要,每种程序语言都规定了在程序里如何描述名字,程序语言的名字通常被称为标识符;汇编语言中的标识符一般最多由31个字母、数字及规定的特殊符号(如-,$,?,@)组成,不能以数字开头。
〔习题3.3〕什么是保留字,汇编语言的保留字有哪些类型,并举例说明。
〔解答保留字是在每种语言中规定了有特殊意义和功能的不允许再做其它用处的字符串;汇编语言的保留字主要有硬指令助记、伪指令助记符、运算符、寄存器名以及预定义符号等。
汇编语言对大小写不敏感。
如定义字节数和字符串的DB就是伪指令助记符。
〔习题3.4〕汇编语句有哪两种,每个语句由哪4个部分组成?〔解答〕汇编语句有执行性语句和说明性语句;执行性语句由标号、硬指令助记符、操作数和注释四部分组成;说明性语句由名字、伪指令助记符、参数和注释四部分组成〔习题3.5〕汇编语言程序的开发有哪4个步骤,分别利用什么程序完成、产生什么输出文件。
〔解答〕⒈编辑文本编辑程序汇编语言源程序.asm⒉汇编汇编程序目标模块文件.obj⒊连接连接程序可执行文件.exe或.com⒋调试调试程序应用程序〔习题3.6〕区分下列概念:(1)变量和标号(2)数值表达式和地址表达式(3)符号常量和字符串常量〔解答〕(1)变量是在程序运行过程中,其值可以被改变的量;标号是由用户自定义的标识符,指向存储单元,表示其存储内容的逻辑地址。
(2)数值表达式一般是由运算符连接的各种常数所构成的表达式,地址表达式是由名字、标号以及利用各种的操作符形成的表达式。
汇编语言程序设计(第四版)第1_4章【课后答案】
汇编语言程序设计第四版【课后习题答案】第1章汇编语言基础知识〔习题1.1〕简述计算机系统的硬件组成及各部分作用。
〔解答〕CPU:包括运算器、控制器和寄存器组。
运算器执行所有的算术和逻辑运算;控制器负责把指指令逐条从存储器中取出,经译码分析后向机器发出各种控制命令,并正确完成程序所要求的功能;寄存器组为处理单元提供所需要的数据。
存储器:是计算机的记忆部件,它用来存放程序以及程序中所涉及的数据。
外部设备:实现人机交换和机间的通信。
〔习题1.2〕明确下列概念或符号:主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB。
〔解答〕主存又称内存是主存储器的简称,主存储器存放当前正在执行的程序和使用的数据,CPU可以直接存取,它由半导体存储器芯片构成其成本高、容量小、但速度快。
辅存是辅助存储器的简称,辅存可用来长期保存大量程序和数据,CPU需要通过I/O接口访问,它由磁盘或光盘构成,其成本低、容量大,但速度慢。
RAM是随机存取存储器的英语简写,由于CPU可以从RAM读信息,也可以向RAM写入信息,所以RAM也被称为读写存储器,RAM型半导体存储器可以按地址随机读写,但这类存储器在断电后不能保存信息;而ROM中的信息只能被读出,不能被修改,ROM型半导体通常只能被读出,但这类存储器断电后能保存信息。
存储器由大量存储单元组成。
为了区别每个单元,我们将它们编号,于是,每个存储单元就有了一个存储地址,I/O接口是由一组寄存器组成,为了区别它们,各个寄存器进行了编号,形成I/O地址,通常称做I/O端口。
KB是千字节、MB是兆字节、GB是吉字节和TB是太字节,它们都是表示存储器存储单元的单位。
〔习题1.3〕什么是汇编语言源程序、汇编程序、目标程序?〔解答〕用汇编语言书写的程序就称为汇编语言源程序;完成汇编工作的程序就是汇编程序;由汇编程序编译通过的程序就是目标程序。
〔习题1.4〕汇编语言与高级语言相比有什么优缺点?〔解答〕汇编语言与高级语言相比的优点:由于汇编语言本质就是机器语言,它可以直接地、有效地控制计算机硬件,因而容易产生运行速度快,指令序列短小的高效目标程序,可以直接控制计算机硬件部件,可以编写在“时间”和“空间”两方面最有效的程序。
第三章 汇编语言程序设计
第3章 汇编语言程序设计 章
3.2 汇编语言源程序的格式
பைடு நூலகம்
名字: 名字:变量和标号
变量名 段名 过程名:指示性语句中的名字.内存单元的名 变量名/段名 过程名:指示性语句中的名字. 段名/过程名
定义. BUF DB ? 字,由DB/DW/DD定义. 由 定义 变量的三种属性: 变量的三种属性: 段值 SEG 偏移量 OFFSET 类型 BYTE/WORD/DWORD 标号:指令性语句中的名字.指令存放单元的符号地址. 标号:指令性语句中的名字.指令存放单元的符号地址. LOOPER: MOV AL,DATA[SI] 标号的三种属性: 标号的三种属性: 段值 SEG 偏移量 OFFSET 类型 NEAR/FAR 对于汇编程序来说,变量和标号都是存储单元的符号地址. 注:对于汇编程序来说,变量和标号都是存储单元的符号地址. 只是标号对应的存储单元中存放的是指令, 只是标号对应的存储单元中存放的是指令,而变量所对应的 存储单元存放的是数据. 存储单元存放的是数据.
令和数据. 令和数据. 汇编语言(Assenbly Lauguage):用助记符来编写 汇编语言( Lauguage): 指令,地址和数据也可用符号表示. 指令,地址和数据也可用符号表示.用汇编语言 编写的程序必须翻译成机器语言目标程序( 编写的程序必须翻译成机器语言目标程序(或目 标代码)才能执行,这种翻译过程称为汇编 汇编. 标代码)才能执行,这种翻译过程称为汇编. 高级语言:不针对某个具体的计算机,通用性强. :不针对某个具体的计算机,通用性强. 但高级语言编写的源程序同样必须"翻译" 但高级语言编写的源程序同样必须"翻译"成机 器语言,计算机才能执行, 器语言,计算机才能执行,所用的系统软件称为 编译程序或解释程序. 编译程序或解释程序.
第三章 汇编语言程序及实现
2013-8-13
河南师范大学计算机与信息技术学院
29
汇编语言程序设计——方法、技术、应用
2. 属性指定操作
格式:THIS 类型名 利用THIS说明的操作数具有汇编时的当前逻辑地址,但具有指 定的类型。 LABEL伪指令的功能等同于‚EQU THIS‛。
示例1
示例2
2013-8-13
河南师范大学计算机与信息技术学院
河南师范大学计算机与信息技术学院
25
汇编语言程序设计——方法、技术、应用
运算符的优先级
1 2 3 4 5 6 7 8 9 10 () <> [] · LENGTH SIZE WIDTH MASK PTR OFFSET SEG TPYE THIS : HIGE LOW * / MOD SHL SHR + EQ NE GT LT GE LE NOT AND 建议采用圆括号‚()‛ OR XOR 显式表达,它可以极大 SHORT 地提高程序的可阅读性。
量
2013-8-13
河南师范大学计算机与信息技术学院
13
汇编语言程序设计——方法、技术、应用
1.常量
常量表示一个固定的数值。不占存储空间。
常量在程序中可以直接出现,对于经常使用的常量可以定义为符号常量。 常量在伪指令语句中主要用于给变量赋初值,在指令语句中常用作立即 数及存储器寻址方式中的位移量。 数值常量可以是二、八、十、十六进制数。 字符常量是将字符用单引号或双引号界定; 字符串常量是将字符串用单引号或双引号引起,单引号字符本身用连 续两个单引号引起。 各种符号的属性值可作为常量使用,称为属性常量。
2013-8-13
河南师范大学计算机与信息技术学院
28
汇编语言程序设计——方法、技术、应用
在DSP应用中,虽然可以使用CC++高级语言编程,降低了
第3章汇编语言指令系统在DSP应用中,虽然可以使用C/C++高级语言编程,降低了对编程者的要求,但在一些实时性要求高的场合仍然需要采用汇编编程,以充分利用DSP丰富的硬件资源,发挥它的实时运算能力。
用汇编语言编程,要求编程者对DSP的低层有充分的了解,包括硬件结构、存储器空间模型和I/O口的组织等。
同时又要求编程者对指令系统有深刻的了解。
第3章汇编语言指令系统目录:3.1 C54x 汇编语言指令集介绍3.2 寻址方式3.3 C54x 系列DSP的指令系统参考:TMS320C54x DSP Reference Set Volume 2:Mnemonic Instruction Set.pdf, spru172c, 2001, TI官网3.1 C54x汇编语言指令集介绍C54x汇编语言源程序指令包括:➢汇编语言指令Assembly Language Instructions ➢汇编伪指令Assembler Directives➢宏指令Macro Directives本章介绍C54x DSP的汇编语言指令系统。
与其它CPU的指令集相同,汇编语言指令又称为硬指令,它们在汇编和连接后形成可执行的机器码,供DSP进行运算和其它操作。
TMS320C54x assembly language source programs consist of source statements that can contain assembler directives, assembly language instructions, macro directives, and comments.3.1.1 指令系统中的符号、缩写及操作符➢指令系统中采用的符号和缩写如下列表中所示序号符号含义1A累加器A2ALU算术逻辑运算单元3AR泛指通用辅助寄存器4ARx指定某一辅助寄存器AR0~AR75ARP ST0中的3位辅助寄存器指针6ASM ST1中的5位累加器移位方式位-16~15 7B累加器B8BRAF ST1中的块重复操作标志位9BRC块重复操作计数器10BITC或bit_code用于测试指令,指定数据存储器单元中的哪一位被测试,取指范围:0~15BIT Xmem, BITC3.1 C54x汇编语言指令集介绍3.1.1 指令系统中的符号、缩写及操作符(续)序号符号含义11C16ST1中的双16位/双精度算术运算方式位12C ST0中的进位位13CC2位条件码(0≤CC≤3)14CMPT ST1中的ARP修正方式位15CPL ST1中的直接寻址编辑标志位16cond表示一种条件的操作数,用于条件执行指令17[d],[D]延时选项18DAB D地址总线19DAR DAB地址寄存器20dmad16位立即数数据存储器地址(0~65535)序号符号含义21Dmem数据存储器操作数22DPST0中的数据存储器页指针(0≤DP≤511)23Dst目的累加器(A和B)24dst_与dst相反的目的累加器25EAB E地址总线26EAR EAB地址寄存器27extpmad23位立即数程序存储器地址28FRCT ST1中的小数方式位29hi(A)累加器的高阶位(AH或BH)30HM ST1中的保持方式位3.1.1 指令系统中的符号、缩写及操作符(续)序号符号含义31IFR中断标志寄存器32INTM ST1中的中断屏蔽位33K少于9位的短立即数34k33位立即数(0≤k3≤7)35k55位立即数(-16≤k5≤15)36k99位立即数(0≤k9≤511)37lk16位长立即数38Lmem利用长字寻址的32位单数据存储器操作数39mmr,MMR存储器映像寄存器40MMRx,MMRy存储器映像寄存器,AR0~AR7或SP3.1.1 指令系统中的符号、缩写及操作符(续)第3章汇编语言指令系统序号符号含义41n XC 指令后面的字数,取1或242N 指定状态寄存器,N=0为ST0,N=1为ST143OVA ST0中的累加器A 溢出标志44OVB ST0中的累加器B 溢出标志45OVdst 指定目的累加器(A 或B)的溢出标志46OVdst_另一个目的累加器(A 或B)的溢出标志47OVsrc 指定源累加器(A 或B)的溢出标志48OVM ST1中的溢出方式位49PA 16位立即数端口地址(0≤PA ≤65535)50PAR 程序存储器地址寄存器3.1.1 指令系统中的符号、缩写及操作符(续)XC n, cond [, cond [, cond]RSBX N, SBIT第3章汇编语言指令系统序号符号含义51PC程序计数器52pmad16位立即数程序存储器地址(0≤pmad≤65535)53pmem程序存储器操作数54PMST处理器工作方式状态寄存器55prog程序存储器操作数56[R]舍入选项57rnd舍入Round58RC重复计数器59RTN快速返回寄存器60REA块重复结束地址寄存器3.1.1 指令系统中的符号、缩写及操作符(续)第3章汇编语言指令系统序号符号含义61RSA 块重复起始地址寄存器62SBIT 用于指定状态寄存器位的4位地址(0~15)63SHFT 4位移位值(0~15)64SHIFT 5位移位值(-16~15)65Sind 间接寻址的单数据存储器操作数66Smem 16位单数据存储器操作数67SP 堆栈指针寄存器68src 源累加器(A 或B)69ST0,ST1状态寄存器0,状态寄存器170SXM ST1中的符号扩展方式位3.1.1 指令系统中的符号、缩写及操作符(续)RSBX N, SBIT序号符号含义71T暂存器72TC ST0中的测试/控制标志73TOS堆栈顶部74TRN状态转移寄存器(比较选择存储CSST单元内) 75TS由T寄存器的5~0位所规定的移位数(-16~31) 76uns无符号数77XF ST1中的外部标志状态位78XPC程序计数器扩展寄存器79Xmem16位双数据存储器操作数, 用于双数据操作数指令和单数据操作指令80Ymem16位双数据存储器操作数,用于双数据操作数指令3.1.1 指令系统中的符号、缩写及操作符(续)CMPS指令3.1.1 指令系统中的符号、缩写及操作符➢指令系统中的运算符号及优先级如下列表中所示序号符号运算功能求值顺序1+ -~ !取正、取负、按位求补、逻辑非从右至左2* / %乘法、除法、求模从左至右3+ -加法、减法从左至右4^指数从左到右5<< >>左移、右移从左至右6< ≤小于、小于等于从左至右7> ≥大于、大于等于从左至右8≠!=不等于从左至右序号符号运算功能求值顺序8=等于从左至右9&按位与运算(AND )从左至右10∧按位异或运算(exclusive OR )从左至右11|按位或运算(OR )从左至右3.1.1 指令系统中的符号、缩写及操作符➢指令系统中的运算符号及优先级如下列表中所示本节以LD 装载指令为例,说明指令的格式和其它一些有用信息。
3.1 MCS-51汇编语言指令格式
·@: 表示间接寻址寄存器或基址寄存器的前缀符号。 ·@Ri: 表示寄存器间接寻址,常常作间接寻址的地址指针。 其中Ri代表R0和R1寄存器中的一个。
16
第一节 指令格式
P35 常用符号 ·addr16: 表示16位地址 ·addr11: 表示11位地址 ·rel: 用补码形式表示的地址偏移量,取值范围为-128~+127。 ·Bit: 表示内部RAM和SFR中的具有位寻址功能的位地址。 ·$: 表示当前指令的地址。 ·#date16: 表示16位立即数,即16位常数, 取值范围为#0000H~#0FFFFH
6
第一节 指令格式
根据指令格式,找出表中指令的 根据指令格式,
实际地址 标号 汇编指令助记符
ORG 0060H R5,#100 R6,#200 R7,#248
操作码
0060H 0062H 0064H
DELAY: MOV D1: MOV D2: MOV
D3: DJNZ R7,D3
DJNZ R6,D2 DJNZ R5,D1 RET END
4
0064H 0062H
实验6.1 实验
ORG 0000H AJMP START ORG 0050H START: MOV R0,#30H MOV R2,#10H CLR A L1: MOV @R0,A INC INC R0 A
L2: DJNZ R2,L1 L3: SJMP L3 END
5
第一节 指令格式
ORG 0060H
0060H 0062H 0064H
START: CLR P3.7 MOV R2,#07H
MOV A,#0FEH LOOP: MOV LCALL P0,A DELAY
RL
A
第3章 汇编语言程序设计
START PROC FAR MOV AX,DSEG MOV DS,AX MOV AX,ESEG MOV ES,AX ;-----------------------------------------------------微机原理 汇编语言程序设计(8)
MOV AH,4CH INT 21H 指令构成的管理性语句,其对 START ENDP 应的伪操作是在汇编过程中完 CSEG ENDS 成的,汇编后不产生机器代码。 ;--------------------------------------------
MESG
43 45 4C 4C
H E L L O
DB ‘AB’ DW ‘AB’
41
A
42 42 41
B B A
微机原理 汇编语言程序设计(31)
• 操作数?可以保留存储空间但 不存入数据. ABC DB 0,?,?,?,0 DFF DW ?,52,? • 经汇编后存储情况如图所示.
ABC
00
微机原理 汇编语言程序设计(15)
• 段定义伪操作SEGMENT/ENDS 格式如下: segment-name SEGMENT … segment-name ENDS 其中删节号部分,对于DS、ES和SS来说,一般是存贮 单元的定义、分配等伪操作;对于代码段则是指令 及伪操作。
微机原理 汇编语言程序设计(16)
汇编语言的语句格式
• 汇编语言源程序中的每个语句可以由4项组成, 格式如下 [名字项] 操作项 操作数项 ;注释项 AGAIN: MOV AL, [SI] ;取加数 A DB ‗ABCDEFG‘
微机原理 汇编语言程序设计(9)
名字项
• 源程序中用下列字符表示名字: • 字母:A~Z或a~z; • 数字:0~9; • 专用字符号:?、• 、@、―、$; • 名字项可以是标号或变量。
第3章_89C51的指令系统
⑤ 操作数与操作码之间用空格分隔,操作数与 操作数之间用逗号“,”分隔。
⑷ 注释:指令功能说明。
① 注释属于非必需项,是为便于阅读, 对指令功能作的说明和注解。 ② 注释必须以“;”开始。
指令有单字节指令、双字节指令、三字节不同长 度的指令,格式不同: (1)单字节指令:操作码、操作数 同在一个字 节中。
方括符[ ]表示可选项 标号代表指令所在地址,1-8个字母/数字,“:‖结尾
⑴
标号:指令的符号地址。
① 用于一段功能程序的识别标记或控制 转移地址。 ② 指令前的标号代表该指令的地址, 是用符号表示的地址。 ③ 一般用英文字母和数字组成。
④
标号必须用冒号“ :”与操作码分隔。
⑵
操作码:表示指令的操作功能。
MOV A,3AH ;将内RAM 3AH单元中的数据传送至A中
MOV A,P0 ;将特殊功能寄存器P0口中的数据传送至A中 说明:3AH和P0是以direct形式出现的直接地址 访问特殊功能寄存器SFR只能采用直接寻址方式。
直接寻址是给出操作数的直接地址。
3. 寄存器间接寻址方式 寄存器中存放的是操作数的地址,在寄存器前加前缀标志“@‖ 。 访问内部RAM或外部RAM的低256个字节时,只能采用R0或R1作 为间址寄存器。例如: MOV A,@Ri ;i=0或1 其中Ri中的内容为40H,把内部RAM40H单元内容送A。 寻址范围: (1)访问内部RAM低128个单元,其通用形式为@Ri (2)对外部RAM的64K字节的间接寻址,例如: MOVX A,@DPTR (3)片外数据存储器的低256字节 例如:MOVX A,@Ri (4)堆栈区 堆栈操作指令PUSH(压栈)和POP(出栈)使用堆栈指针 (SP)作间址寄存器
单片机原理及应用(林立张俊亮版)课后习题答案
第一章习题1.什么是单片机?单片机和通用微机相比有何特点?答:单片机又称为单片微计算机,它的结构特点是将微型计算机的基本功能部件(如中央处理器(CPU)、存储器、输入接口、输出接口、定时/计数器及终端系统等)全部集成在一个半导体芯片上。
虽然单片机只是一个芯片,但无论从组成还是从逻辑功能上来看,都具有微机系统的定义。
与通用的微型计算机相比,单片机体积小巧,可以嵌入到应用系统中作为指挥决策中心,是应用系统实现智能化。
2.单片机的发展有哪几个阶段?8位单片机会不会过时,为什么?答:单片机诞生于1971年,经历了SCM、MCU、SOC三大阶段,早期的SCM单片机都是8位或4位的。
其中最成功的是INTEL的8031,此后在8031上发展出了MCS51系列MCU系统。
基于这一系统的单片机系统直到现在还在广泛使用。
随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。
90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。
随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。
然而,由于各应用领域大量需要的仍是8位单片机,因此各大公司纷纷推出高性能、大容量、多功能的新型8位单片机。
目前,单片机正朝着高性能和多品种发展,但由于MCS-51系列8位单片机仍能满足绝大多数应用领域的需要,可以肯定,以MCS-51系列为主的8位单片机,在当前及以后的相当一段时间内仍将占据单片机应用的主导地位。
3.举例说明单片机的主要应用领域。
答:单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:智能仪器单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、电流、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。
第三章习题参考答案
第三章习题参考答案一、填空题1、指令格式是由操作码和操作数所组成,也可能仅由操作码组成。
2、若用传送指令访问MCS-51的程序存储器,它的操作码助记符应为MOVC 。
3、若用传送指令访问MCS-51的片内数据存储器,它的操作码助记符应为MOV 。
4、若访问MCS-51的片外数据存储器,它的操作码助记符应为MOVX 。
5、累加器(A)=80H,执行完指令ADD A,#83H后,进位位C= 1 。
6、执行ANL A,#0FH指令后,累加器A的高4位= 0000 。
7、JZ rel的操作码地址为1000H,rel=20H,它的转移目的地址为1022H 。
8、JBC 00H,rel 操作码的地址为2000H,rel=70H,它的转移目的地址为2073H 。
9、累加器(A)=7EH,(20H)= #04H,MCS-51执行完ADD A,20H指令后PSW.0= 0 。
10、MOV PSW,#10H是将MCS-51的工作寄存器置为第 2 组。
11、指令LCALL 37B0H,首地址在2000H,所完成的操作是2003H 入栈,37B0H →PC。
12、MOVX A,@DPTR源操作数寻址方式为寄存器间接寻址。
13、ORL A,#0F0H是将A的高4位置1,而低4位保持不变。
14、SJMP rel的指令操作码地址为0050H,rel=65H,那么它的转移目标地址为 00B7H 。
15、设DPTR=2000H,(A)=80H,则MOVC A,@A+DPTR的操作数的实际地址为2080H 。
16、MOV C,20H源寻址方式为位寻址。
17、在直接寻址方式中,只能使用8 位二进制数作为直接地址,因此其寻址对象只限于片内RAM 。
18、在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而是操作数的地址。
19、在变址寻址方式中,以 A 作变址寄存器,以PC 或DPTR 作基址寄存器。
20、假定累加器A中的内容为30H,执行指令1000H:MOVC A,@A+PC后,把程序存储器1031H 单元的内容送入累加器A中。
单片机原理与运用-第三章答案
第三章单片机的汇编语言与程序设计习题1.设内部RAM中59H单元的内容为50H,写出当执行以下程序段后寄存器A,R0和内部RAM中50H,51H单元的内容为何值?MOV A,59HMOV R0,AMOV A,#00HMOV @R0,AMOV A,#25HMOV 51H,AMOV 52H,#70H解:MOV A,59H ;A=50HMOV R0,A ;RO=50HMOV A,#00H ;A=00HMOV @R0,A ;50H=00HMOV A,#25H ;A=25HMOV 51H,A ;51H=25HMOV 52H,#70H ;52H=70H所以:A=25H R0=50H ;50H=00H 51H=25H2.请选用合适的指令对P0口内容做修改〔〕。
解:MOV A,P0ANL A,0fhMov P0,A3.试问外部数据存储器和程序存储器可以用哪些指令来实现?举例说明。
解:访问外部数据存储器指令有:MOVX @DPTR,A MOVX DPTR,#0100H MOV @DPTR,AMOVX A,@DPTR MOVX DPTR,#0200H MOV A,@DPTRMOVX A,@Ri MOVX A,@R0MOVX @Ri,A MOVX @RI,A访问程序存储器指令有:MOVX A,@A+PCMOVX A,@A+DPTR4.设堆栈指针SP中的内容为60H,内部RAM中30H和31H单元的内容分别为24H和10H,执行以下程序段后,61H,62H,30H,31H,DPTR及SP中的内容将有何变化?PUSH 30HPUSH 31HPOP DPLPOP DPHMOV 30H,#00HMOV 31H,#0FFH解:PUSH 30H ;61H=24HPUSH 31H ;62=10H SP=62HPOP DPL ;DPL=10HPOP DPH ;DPH=24H SP=60HMOV 30H,#00H ;30H=00HMOV 31H,#0FFH ;31H=0FFH5.设(A)=40H,(R1)=23H,(40H)=05H。
计算机组成原理与汇编语言程序设计课后习题及解答(详解)
计算机组成原理与汇编语言程序设计课后习题及解答徐洁,俸远祯电子工业出版社第1章习题一1.什么是程序存储工作方式?答:计算机的工作方式——存储程序工作方式。
即事先编写程序,再由计算机把这些信息存储起来,然后连续地、快速地执行程序,从而完成各种运算过程。
2.采用数字化方法表示信息有哪些优点?用数字化方法表示信息的优点:(1)抗干扰能力强, 可靠性高。
(2)依靠多位数字的组合,在表示数值时可获得很宽的表示范围以及很高的精度。
(3)数字化的信息可以存储、信息传送也比较容易实现。
(4)可表示的信息类型与范围及其广泛,几乎没有限制。
(5)能用逻辑代数等数字逻辑技术进行信息处理,这就形成了计算机硬件设计的基础。
3.如果有7×9点阵显示出字符A的图像,请用9个七位二进制代码表示A的点阵信息。
4.数字计算机的主要特点是什么?1. (1)能在程序控制下自动连续地工作;(2|)运算速度快;(3)运算精度高;(4)具有很强的信息存储能力;(5)通用性强,应用领域及其广泛。
5.衡量计算机性能的基本指标有哪些?答:衡量计算机性能的基本指标:(1)基本字长——参加一次运算的数的位数;(2)数据通路宽度——数据总线一次能并行传送的位数;(3)运算速度——可用①CPU的时钟频率与主频,②每秒平均执行指令数,③典型四则运算的时间来表示。
(4)主存储器容量——可用字节数或单元数(字数)×位数来表示。
(6)配备的外围设备及其性能。
(7)系统软件配置。
7.系统软件一般包括哪些部分?列举你所熟悉的三种系统软件。
系统软件一般包括操作系统,编译程序、解释程序、各种软件平台等。
例如WINDOWS98操作系统,C 语言编译程序等,数据库管理系统。
8.对源程序的处理有哪两种基本方式?对源程序的处理通常有两种处理方式:解释方式和编译方式。
第2章习题二1.将二进制数(101010.01)2 转换为十进制数及BCD码。
解:(101010.01)2 = (42.25)10 = (01000010.00100101)BCD2.将八进制数(37.2)8转换为十进制数及BCD码.解:(37.2)8 = (31.25)10 =(00110001.00100101)BCD3.将十六进制数(AC.E)转换为十进制数及BCD码.解: (AC.E)16 =(172.875)10 = (000101110010.100001110101)BCD4.将十进制数(75.34)10转换为8位二进制数及八进制数、十六进制数。
(单片机完整课件PPT)第三章
寻址范围包括:
(1)内部RAM中的位寻址区。位有两种表示方法,例如, 40H;另一种是单元地址加上位,例如,(28H).0,指 的是28H单元中的最低位。它们是等价的。 (2)特殊功能寄存器中的可寻址位
可寻址位在指令中有如下4种的表示方法:
a. 直接使用位地址。例如PSW.5的位地址为0D5H。
b. 位名称的表示方法。例如:PSW.5是 F0 标志位,可使 用F0表示该位。 c.单元地址加位数的表示方法。例如 :(0D0H).5。 d.特殊功能寄存器符号加位数的表示方法。例如:PSW.5。
课堂练习:
指出下列指令中划线的操作数的寻址方式: Mov r0,#60h Mov a,30h Mov a, @r0 Movc a, @a+dptr Cjne a,#00h,one Cpl c Mov c,30h
如: MOV
A,Rn
;(Rn)→A,n=0~7
表示把寄存器Rn的内容传送给累加器A
寻址范围:ACC,B,DPTR,PSW,R0~R7,C
三、存储器寻址 寻址空间:64K 外RAM、64K ROM、128B 内RAM
1.直接寻址方式
操作数直接以单元地址的形式给出: MOV A,40H 寻址范围:内部RAM的256个单元 2.寄存器间接寻址方式 寄存器中存放的是操作数的地址 在寄存器的名称前面加前缀标志“@” 如: MOV A,@Ri ;i=0或1
单片机原理与应用技术
厦门理工学院电子与电气工程系 陈志英
第3章 单片机汇编语言编程技术
机器语言:是计算机可以识别和直接执行的语言,它是由一 组二进制代码组成。 汇编语言:是用助记符代替机器语言的操作码,用16进制 数代替二进制代码。 高级语言:是采用类似自然语言并与具体计算机类型基本无
单片机,第三章答案
单片机,第三章答案本页仅作为文档封面,使用时可以删除This document is for reference only-rar21year.March思考题:【3-1】汇编语言与C语言哪种语言的可读性和可移植性强在对速度和时序敏感的场合应该使用什么语言对于复杂的单片机系统一般采用C与汇编混合编程的形式这句话对吗【3-2】二进制机器语言与C和汇编语言两者之间是什么关系用C或汇编编制的程序在ROM中是以编译后的二进制代码的形式存放这句话对吗【3-3】80C51系列单片机指令的格式包含哪几个部分各部分之间的间隔符是什么四个部分中哪个部分是必须存在的,哪几个部分是可有可无的标号的格式和代表的意义是【3-4】80C51系列单片机有哪几种寻址方式【3-5】80C51单片机中立即数是存放在ROM中还是RAM中【3-6】判断下列说法是否正确。
(1)立即数寻址方式是被操作的数据本身就在指令中,而不是它的地址在指令中。
()(2)指令周期是执行一条指令的时间。
()(3)指令中直接给出的操作数称为直接寻址。
()(4)内部寄存器Rn(n=0~7)可作为间接寻址寄存器。
()【3-7】80C51单片机可以进行直接寻址的区域是【3-8】80C51单片机可以进行寄存器寻址的范围是【3-9】80C51单片机可以进行寄存器间接寻址的寄存器是寻址的范围是【3-10】在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而是操作数的()。
【3-11】80C51单片机变址寻址方式中可以作基址的寄存器是可以作变址的寄存器是@A+PC,@A+DPTR所找到的操作数是在ROM中对吗【3-12】80C51单片机相对寻址改变的是PC的当前值,即改变的CPU执行指令的顺序这句话对否【3-13】若访问特殊功能寄存器,只可以采用那种寻址方式【3-14】若访问外部RAM单元,只可以使用哪种寻址方式【3-15】若访问内部RAM单元,可使用哪些寻址方式【3-16】若访问内外程序存储器,可使用哪些寻址方式【3-17】80C51单片机可以进行位寻址的字节单元范围除11个可位寻址的特殊功能寄存器外还包括哪个区域分别找出位地址是00H、08H、22H、7FH、D0H、E0H对应的字节地址【3-18】已知(30H)=40H,(40H)=10H,(10H)=32H,(P1)=0EFH,试写出执行以下程序段后有关单元的内容。
单片机原理及接口技术课后答案第三章
单⽚机原理及接⼝技术课后答案第三章第三章1、指令:CPU根据⼈的意图来执⾏某种操作的命令指令系统:⼀台计算机所能执⾏的全部指令集合机器语⾔:⽤⼆进制编码表⽰,计算机能直接识别和执⾏的语⾔汇编语⾔:⽤助记符、符号和数字来表⽰指令的程序语⾔⾼级语⾔:独⽴于机器的,在编程时不需要对机器结构及其指令系统有深⼊了解的通⽤性语⾔2、见第1题3、操作码 [⽬的操作数] [,源操作数]6、 MOV A,40H ;直接寻址(40H)→AMOV R0,A;寄存器寻址(A)→R0MOV P1,#0F0H ;⽴即数寻址0F0→P1MOV @R0,30H;直接寻址(30H)→(R0)MOV DPTR,#3848H;⽴即数寻址 3848H→DPTRMOV 40H,38H;直接寻址(38H)→40HMOV R0,30H;直接寻址(30H)→R0MOV P0,R0;寄存器寻址( R0 )→P0MOV 18H,#30H ;⽴即数寻址30H→18HMOV A,@R0 ;寄存器间接寻址 ((R0)) →AMOV P2,P1 ;直接寻址(P1)→P2最后结果:(R0)=38H,(A)=40H,(P0)=38H,(P1)=(P2)=0F0H,(DPTR)=3848H,(18H)=30H,(30H)=38H,(38H)=40H,(40H)=40H,(48H)=38H注意:→左边是内容,右边是单元7、⽤直接寻址,位寻址,寄存器寻址8、MOV A,DATA ;直接寻址2字节1周期MOV A,#DATA ;⽴即数寻址2字节1周期MOV DATA1,DATA2 ;直接寻址3字节2周期MOV 74H,#78H ;⽴即数寻址3字节2周期如果想查某⼀指令的机器码,字节数或周期数可查阅书本后⾯的附录A9、MOV A,@R0 ;((R0))=80H→AMOV @R0,40H ;(40H)=08H→(R0)MOV 40H,A ;(A)=80→40HMOV R0,#35H ;35H→R0最后结果:(R0)=35H (A)=80H,(32H)=08H,(40H)=80H10、⽤直接寻址,位寻址,寄存器寻址11、只能采⽤寄存器间接寻址(⽤MOVX指令)12、低128字节:直接寻址,位寻址,寄存器间接寻址,寄存器寻址(R0~R7)⾼128字节:直接寻址,位寻址,寄存器寻址13、采⽤变址寻址(⽤MOVC指令)14、压缩BCD码在进⾏加法运算时应逢⼗进⼀,⽽计算机只将其当作⼗六进制数处理,此时得到的结果不正确。
计算机科目三谱子
计算机科目三谱子第一章:计算机基本知识计算机是一种能够执行人类所设计的指令,并能够完成一系列复杂的计算和处理任务的电子设备。
它由硬件和软件两部分组成,硬件是计算机的物理部分,包括主板、CPU、内存、硬盘等;软件是控制硬件工作的程序和数据。
1.1 计算机的组成1.1.1 CPUCPU(Central Processing Unit)是计算机的核心部件,它承担着执行程序指令和进行数据处理的任务。
CPU的性能直接关系到计算机的运行速度。
1.1.2 内存内存(Memory)是计算机用来存储数据和程序的地方,它分为RAM(Random Access Memory)和ROM(Read-Only Memory)两种。
RAM是临时存储,当计算机断电时数据会丢失;ROM是只读存储,其中存储了计算机的启动程序和固化程序,不会因为断电而丢失。
1.1.3 硬盘硬盘是存储程序和数据的地方,它可以保存数据长期不丢失。
硬盘的容量越大,可以存储的数据越多。
1.1.4 显卡显卡是计算机的图形输出部分,它负责计算机屏幕上的图像显示。
好的显卡可以提高计算机的图形处理性能。
1.1.5 主板主板是计算机的中枢,它连接了计算机的各种硬件设备,是计算机的命脉。
1.2 计算机的工作原理计算机的工作原理主要包括数据输入、数据处理、数据输出和存储。
1.2.1 数据输入数据输入是用户通过输入设备将数据输入到计算机中,如键盘、鼠标、摄像头等。
1.2.2 数据处理数据处理是计算机根据程序指令进行的计算和处理任务,包括算术运算、逻辑运算、数据传输等。
1.2.3 数据输出数据输出是计算机将处理结果通过输出设备输出给用户,如显示器、打印机等。
1.2.4 存储存储是将数据和程序保存在计算机的硬盘或内存中,以便长期使用。
1.3 计算机的分类根据用途和规模的不同,计算机可以分为超级计算机、大型计算机、小型计算机、微型计算机等。
1.4 计算机的发展历史计算机起源于20世纪40年代,经过几十年的发展,如今的计算机已经成为人们日常生活和工作中不可缺少的工具。
汇编语言 第三章 实方式指令寻址与指令系统
3.2实方式32位指令寻址
实地址方式32位指令寻址,指在32位的PC机上使
用16位的存储机制,执行32位的非保护方式及非虚拟
方式的指令,达到直接存取32位寄存器和32位存储器
操作数的目的。
3.3实方式指令系统
指令系统是一台机器所有指令的集合。 Pentium系列 机指令系统庞大、类型多样,约有300多条指令,其中包 括基本指令100多条。 具有支持多进程、多任务、虚 拟存储器和多媒体等功能的32位指令。
设DS=4000H, 1、MOV AX,[3020H] 2、VAR DW 86
MOV AX,VAR 3、SI=1800H, MOV AX,[SI] 4、COUNT DW 5,6,7,8 SI=06H MOV AX,COUNT[SI]
3.1.3数据寻址与数据结构的 关系
多种寻址方式能方便、灵活的存取操作数, 支持高级语 言的某些数据结构。
寄存器间接寻址例
例:MOV AX,[BX] 设BX=1200H
代
MOV
码
段
偏移地址
┇
1200H 22H
数
AH AL 11 22
11H
据
段
寄存器间接寻址
由寄存器间接给出操作数的偏移地址;
存放偏移地址的寄存器称为间址寄存器,它们是:BX, BP,SI,DI
操作数的段地址(数据处于哪个段)取决于选择哪一 个间址寄存器:
一、立即寻址
指令中的源操作数是立即数,即源操作数是参加操作 的数据本身
例:MOV AX,1200H
AH AL
MOV
00H
代
12H
码
┇
段
寄存器寻址(Register Addressing)
16 32位微机原理汇编语言及接口技术(第二版)第三章课后习题
16 32位微机原理、汇编语言及接口技术(第二版)第三章课后习题>第3章3.1:汇编语言有什么特点解:汇编语言是一种以处理器指令系统为基础的低级程序设计语言,它采用助记符表达指令操作码,采用标识符号表示指令操作数,可以直接、有效地控制计算机硬件,因而容易创建代码序列短小、运行快速的可执行程序3.2编写汇编语言源程序时,一般的组成原则是什么?解:(1)完整的汇编语言源程序由段组成(2)一个汇编语言源程序可以包含若干个代码段、数据段、附加段或堆栈段,段与段之间的顺序可随意排列(3)需独立运行的程序必须包含一个代码段,并指示程序执行的起始点,一个程序只有一个起始点(4)所有的可执行性语句必须位于某一个代码段内,说明性语句可根据需要位于任一段内(5)通常,程序还需要一个堆栈段 3.3 MODEL伪指令是简化段定义源程序格式中必不可少的语句,它设计了哪7种存储模式?各用于创建什么性质的程序?解:存储模式 TINY SMALL COMPACT MEDIUM LARGE HUGE FLAT 特点 COM类型程序,只有一个小于64KB的逻辑段(MASM 6.x支持)小应用程序,只有一个代码段和一个数据段(含堆栈段),每段不大于64KB 代码少、数据多的程序,只有一个代码段,但有多个数据段代码多、数据少的程序,可有多个代码段,只有一个数据段大应用程序,可有多个代码段和多个数据段(静态数据小于64KB)更大应用程序,可有多个代码段和多个数据段(对静态数据没有限制) 32位应用程序,运行在32位80x86CPU和Windows 9x或NT环境 3.4如何规定一个程序执行的开始位置,主程序执行结束应该如何返回DOS,源程序在何处停止汇编过程?解:开始位置:用标号指明返回DOS:利用DOS功能调用的4CH子功能来实现汇编停止:执行到一条END伪指令时,停止汇编3.5逻辑段具有哪些属性?解:段定位、段组合和段类型。
3.6给出采用一个源程序格式书写的例题3.1源程序例题3.1:创建一个在屏幕上显示一段信息的程序?? 解: stack segment stack db 1024(0) stack endsdata segmentstring db 'Hello,Assembly!',0dH,0aH,‘$’ data endscode segment 'code'assume cs:code,ds:data,ss:stack start: mov dx,offset string mov ah,9 int 21h code endsend start3.7DOS支持哪两种可执行程序结构,编写这两种程序时需要注意什么?解:(1). EXE程序程序可以有多个代码段和多个数据段,程序长度可以超过64KB 通常生成EXE结构的可执行程序 (2). COM程序只有一个逻辑段,程序长度不超过64KB需要满足一定条件才能生成COM结构的可执行程序(MASM 6.x需要采用TINY模式)3.8举例说明等价“EUQ”伪指令和等号“=”伪指令的用途解:符号定义伪指令有“等价EQU”和“等号=”:符号名 EQU 数值表达式符号名EQU 符号名=数值表达式EQU用于数值等价时不能重复定义符号名,但“=”允许有重复赋值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序应如何对源程序进行汇编,如何定义变 程序应如何对源程序进行汇编, 量,分配存储单元以及指示程序开始和结束 指示性语句没有机器码指令相对应。 等。指示性语句没有机器码指令相对应。
指令性语句汇编时生成机器码; 指示性语句汇编时不生成机器码。
7
汇编语言的一个实例: hello.asm
data Hello data prog
3
3.3.1 汇编语言源程序的结构
汇编语言源程序通常由一个或几个程序模块组 每个模块一般由三个逻辑段组成: 成,每个模块一般由三个逻辑段组成: 数据段——存放数据、变量 堆栈段——堆栈区域 代码段——存放程序指令
4
汇编语言程序框架如下: 汇编语言程序框架如下:
ck
SEGMENT PARA ‘stack‘ DB 100 DUP(‘stack’) stack ENDS data SEGMENT <数据、变量在此定义> data ENDS SEGMENT ASSUME CS:code, DS:data, ES:data start: MOV AX, data MOV DS, AX MOV ES, AX <加入你自己的程序段> MOV AL, 4CH INT 21H code ENDS END start
20
TYPE 用来取存储器操作数的类型 LENGTH 用来计算存储器操作数的元素个数 SIZE 用来计算存储器操作数的字节总数 例:若BUFFER存储区的定义为: BUFFER存储区的定义为: 存储区的定义为 BUFFER DW 200 DUP(0) 则: 等于2 TYPE BUFFER 等于2 等于200 LENGTH BUFFER 等于200 等于400 SIZE BUFFER 等于400
若没有对类型进行说明,默认为NEAR。
标号作为转移或调用指令的转移地址。 标号作为转移或调用指令的转移地址。 转移或调用指令的转移地址
10
2)变量 变量就是内存中的数据区。 就是内存中的数据区。 就是内存中的数据区 变量名是存储单元或数据区的符号地址。 的符号地址。 是存储单元或数据区的符号地址 变量的三个属性:
14
3.保留字、界符和注解 保留字、 保留字
保留字 汇编语言具有特殊含义的符号 指令、伪指令等 界符 指令中两个部分的分隔符号 ‘;><*,:[]+-=()$&?./ 注解 便于阅读和了解程序 以“ ; ”打头,可加在任何一行程序,至行尾。
15
3.3.3 表达式
表达式是常数、寄存器、标号、 表达式是常数、寄存器、标号、变量与运算符 常数 的组合。 的组合。 有数字表达式和地址表达式两种。 数字表达式和地址表达式两种。 表达式和地址表达式两种 汇编时按优先规则对表达式进行计算,计算出 汇编时按优先规则对表达式进行计算, 具体的数值或地址 运行时不能改变。 数值或地址。 具体的数值或地址。运行时不能改变。 类运算符:算术、逻辑、关系, 有 3类运算符:算术、逻辑、关系, 2类操作符:分析操作符、属性操作符。 类操作符:分析操作符、属性操作符。
13
2.常量 2.常量
二进制数,以B结尾。如01001101B。 十进制数,以D结尾或省略,如85。 十六进制数,以H结尾。第1个数字为A-F时, 前面应加0,如0F160H。 字符串:用引号括起来的1个或多个字符。 如 ‘ ERROR!’, ’A’, 汇 编 时 被 翻 译 成 对 应 的 ASCII码45H,52H,52H,4FH,52H,21H和41H。
16
1)算术运算符 1)算术运算符—— +、-、*、/,MOD 算术运算符
用于数字表达式, 用于数字表达式,例: MOV AX,4*1024 汇编后的形式为: 汇编后的形式为: MOV AX,4096 用于地址表达式, 用于地址表达式,例: LEA SI,TAB+3 TAB的偏移地址为1000H,则汇编后为: 的偏移地址为1000H 若TAB的偏移地址为1000H,则汇编后为: LEA SI,[1003H]
例:VAR
DB 12H
…… MOV BX,OFFSET VAR ;取变量VAR的偏移地址 MOV AX,SEG VAR ;取变量VAR的段地址
注意,以下指令的异同: 注意,以下指令的异同: MOV BX, OFFSET VAR LEA BX, VAR
OFFSET只能取静态的偏移地址; 只能取静态的偏移地址; 只能取静态的偏移地址 LEA指令即可取静态的偏移地址,也可取动态的偏移地址。 指令即可取静态的偏移地址, 指令即可取静态的偏移地址 也可取动态的偏移地址。
堆栈段 数据段
code
代码段
5
汇编语言的语句与格式
汇编语言的语句有两种: 指令性语句——由8086指令助记符构成的语句 指令性语句 由8086指令助记符构成的语句 指示性语句——由伪指令构成的语句 指示性语句 由伪指令构成的语句 指令性语句的格式为: 的格式为: 的格式为
标号: 指令助记符 目的操作数,源操作数 ;注释
8
3.3.2 标记
组织起来。 语句行由标记和分隔符(空格)组织起来。 语句行由 和 组织起来 标记包括: 包括: 包括 标识符(标号、变量或名字) 标识符(标号、变量或名字) 保留字 分界符 常量 注释
9
1.标识符(标号、变量或名字) 1.标识符(标号、变量或名字) 标识符 便于理解和书写所使用的一些字符串。 便于理解和书写所使用的一些字符串。
1
指令除了操作码以外,还有一个操作数问题。 指令除了操作码以外,还有一个操作数问题。
操作数可能放在存储器中,这就涉及一个地址问题。 操作数可能放在存储器中,这就涉及一个地址问题。 程序中遇到转移指令或调用指令,就要知道转移地址, 程序中遇到转移指令或调用指令,就要知道转移地址,若 采用具体地址就很不方便,一旦有错改动也很麻烦。 采用具体地址就很不方便,一旦有错改动也很麻烦。于 是人们采用标号或符号来代替地址,例: 是人们 , LP1: … … LOOP LP1 汇编语言——指令助记符 , 符号地址 , 标号 , 伪指令 指令助记符, 指令助记符 符号地址, 标号, 等语言元素的集合以及这些元素使用的规则。 等语言元素的集合以及这些元素使用的规则。 用汇编语言编写的程序叫汇编语言源程序。 用汇编语言编写的程序叫 。
21
4)属性操作符 4)属性操作符——PTR 属性操作符 PTR
指定地址操作数类型,不单独使用。 指定地址操作数类型,不单独使用。 格式: 类型 类型> 地址操作数> 格式:<类型 PTR <地址操作数 地址操作数
类型∈ 类型∈{BYTE, WORD, DWORD, NEAR, FAR}
BYTE、WORD、DWORD 、 、 用于描述数据存储单元(变量 变量)地址 用于描述数据存储单元 变量 地址 NEAR、FAR 、 用于描述转移、 用于描述转移、调用的目的地址
指示性语句的格式为: 的格式为: 的格式为
名字 伪指令 操作数1,操作数2,…,操作数n ;注释
注:各部分之间至少要用一个空格作为分隔符。
6
●指令性语句由CPU执行,每一条指令性语 执行, 由 执行
有一条机器码指令与其对应; 句都有一条机器码指令与其对应 句都有一条机器码指令与其对应;
●指示性语句由汇编程序执行。它指出汇编 执行。 执行
18
3)关系运算符 EQ、 3)关系运算符——EQ、NE、LT、GT、LE、GE 关系运算符 EQ NE、LT、GT、LE、
关系运算的结果是一个逻辑值: 或 关系运算的结果是一个逻辑值:真或假 关系为真,结果为全1( 0FFFFH或字节 1(字 或字节0FFH) 关系为真,结果为全1(字0FFFFH或字节0FFH) 关系为假,结果为全0 关系为假,结果为全0
SEGMENT DB ‘Hello, world!’,0DH,0AH,’$’ ENDS SEGMENT ASSUME CS:prog,DS:data start: MOV AX,data MOV DS,AX LEA DX,Hello MOV AH,9 INT 21H MOV AH,4CH INT 21H 返回 prog ENDS END start
17
2)逻辑运算符 AND、OR、XOR、 2)逻辑运算符—— AND、OR、XOR、NOT 逻辑运算符
逻辑运算符只能用于数字表达式中。 逻辑运算符只能用于数字表达式中。 例:MOV CL,36H AND 0FH 经汇编后: 经汇编后:MOV CL,06H 注意,不要把逻辑运算符与逻辑运算指令混淆: 注意,不要把逻辑运算符与逻辑运算指令混淆: 例:AND AX, 3FC0H AND 0FF00H 经汇编后: 经汇编后:AND AX,3F00H
例:MOV BX,PORT GT 300H PORT的值大于300H,则汇编后为 的值大于300H,则汇编后为: 若PORT的值大于300H,则汇编后为: MOV BX,0FFFFH 否则汇编后为: 否则汇编后为: BX,0 MOV BX,0
19
4)分析操作符 4)分析操作符
SEG:取变量/标号的段地址 : 变量 标号 标号的段地址 OFFSET:取变量/标号的偏移地址 : 变量 标号的偏移地址 标号