汇编语言 第三章 8086汇编语言程序格式
第3章 8086指令系统-汇编语言程序设计教程-陆遥-清华大学出版社

直接寻址方式可以利用变量名的偏移地址属性来 描述操作数的偏移地址(可直接用变量名,或将 变量名置于方括号[ ]中),段寄存器默认为DS。 如果实际使用的段寄存器不是DS,则必须用段 前缀明确指出。
【例3.7】设数据段内有如下变量定义语句
VAR DB 76H,5CH,0A3H,08H
分析以下指令的执行结果。
3.1 指令系统基本概念
指令是给计算机下达的一个简单操作任务,CPU 所能执行的所有指令构成了一个计算机的指令系 统(也称指令集)。
汇编语言指令是对机器指令的符号化表示,采用 助记符来表示指令的操作功能和操作对象。
指令通常可以分为以下几类:
⑴ 数据传送类指令。 ⑵ 算术运算类指令。
⑸ 程序控制类指令。 ⑹ 处理器控制类指令。
【例3.3】要求将数据68传送给AL寄存器,写出相应的传 送指令。 分析:由于AL寄存器接收数据,所以目的操作数为AL, 采用寄存器寻址方式,而源操作数为常数68,采用立即寻 址方式
MOV AL,68 ;AL←68
【例3.4】设被加数存于寄存器DX中,加数为512,写出相 应的加法指令。 分析:因为被加数由寄存器DX提供,所以DX为目的操作 数,采用寄存器寻址方式,而加数为常数512,采用立即 寻址方式
操作数。
2. ADD指令
指令格式:ADD DST,SRC 指令功能:DST←(DST)+(SRC) 。执行加法运算。 操作数特点:两个操作数。被加数DST为目的操作数,加
数SRC为源操作数。
3. NOT指令
指令格式:NOT OPR 指令功能:OPR←(OPR) 。执行逻辑非运算。 操作数特点:一个操作数。OPR既是目的操作数,也是源
段地址由段寄存器提供,用段前缀(DS:,ES:, CS:或SS:)来指明;偏移地址(亦称有效地址) 则有多种表示形式,由此形成了不同的存储器寻 址方式。
汇编语言程序设计(第四版)【课后答案】

汇编语言程序设计第四版【课后习题答案】第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〕汇编语言与高级语言相比有什么优缺点?〔解答〕汇编语言与高级语言相比的优点:由于汇编语言本质就是机器语言,它可以直接地、有效地控制计算机硬件,因而容易产生运行速度快,指令序列短小的高效目标程序,可以直接控制计算机硬件部件,可以编写在“时间”和“空间”两方面最有效的程序。
汇编语言(微机)第三章

汇编语言源程序的格式
一般情况下,定位类型、组合类型和类别说明可以 不用。 注意:SEGMENT和ENDS语句必须成对使用。 例:定义一数据段DATA
DATA SEGMENT A DB '1234' B DW 12H
DATA ENDS
22
汇编语言源程序的格式
(2)偏移地址定位语句 ORG 格式:ORG 数值表达式 功能:指定在它之后的程序段或数据块所存放的起始地 址的偏移量。
SUB1: ?
RESU: ?
?
31
汇编语言源程序的格式
④ 用DUP重复因子初始化一个数据区
格式:N DUP (表达式)
?、数值、
数值表达式
重复次数 重复装入的内容
字符等
例1: DA1 DB 2 DUP(0) DA2 DB 2 DUP(‘AB’) DA3 DW 2 DUP(1)
DA1
00
00
DA2
41
LOP: ADD AL,[BX] ADC AH,0 INC BX LOOP LOP MOV [DI] ,AX MOV AH ,4CH INT 21H
CODE ENDS END START
9
汇编语言源程序的格式
汇编语言源程序的格式
二、指令性语句 [标号:] 操作码 [操作数] [;注释项]
操作码:指明操作的性质,说明计算机要执行的具体操 作。用助记符表示。
第三章:8086汇编语言程序设计
主讲教师:范新民
整理ppt
1
8086汇编语言程序设计
1 3.2.1 汇编语言源程序的格式 2 3.2.2 常量、标识符和表达式 3 3.2.3 指示性语句 4 3.2.4 指令性语句 5 3.2.5 宏指令
微机原理8086汇编语言

微机原理8086汇编语言微机原理和8086汇编语言是计算机科学与技术领域中的重要基础知识,对于理解计算机的运行原理和编程开发具有关键作用。
本文将全面介绍微机原理和8086汇编语言的基本概念、功能特点以及应用实践。
一、微机原理概述微机原理是指微型计算机的构成、工作原理、体系结构和外围设备等的基本原理。
微机由中央处理器(CPU)、存储器和输入输出设备等组成,其内部实现了数据的存储和处理,并能够与外部环境进行交互。
微机原理的研究与应用对于计算机硬件的设计和控制至关重要。
二、8086汇编语言介绍8086汇编语言是在微机原理基础上发展起来的一种低级程序设计语言。
它以机器指令的形式直接对CPU发出控制命令,实现数据处理和操作。
8086汇编语言具有直观、高效的特点,可以对计算机内部各种硬件资源进行精细控制,实现复杂的算法和功能。
三、8086汇编语言的基本语法8086汇编语言的基本语法包括指令、寻址方式和操作数等。
指令通常由操作码和操作数组成,用于执行特定的操作。
寻址方式指定操作数在内存中的位置,可以是直接寻址、寄存器间接寻址、立即数寻址等多种方式。
操作数表示要进行操作的数据,可以是寄存器、内存单元或立即数。
四、8086汇编语言的常用指令8086汇编语言提供了丰富的指令集,包括数据传输指令、算术运算指令、逻辑运算指令、条件转移指令、无条件转移指令等。
通过这些指令的组合和调用,可以实现各种复杂的功能和处理需求。
五、8086汇编语言的应用实践8086汇编语言广泛应用于嵌入式系统设计、驱动程序开发、操作系统编程以及性能优化等领域。
在嵌入式领域,汇编语言可以直接操作硬件资源,实现高效的数据处理和控制;在操作系统编程中,汇编语言可以直接访问操作系统内核,实现底层功能的扩展和优化。
六、8086汇编语言的优势与不足8086汇编语言具有高效、灵活的优势,可以直接操作硬件资源和内存,实现高性能的程序。
然而,汇编语言的开发和调试困难,可读性低,维护成本高,对程序员的要求较高。
华中科技大学8086汇编讲义第三章宏汇编语言

第三章宏汇编语言每种计算机语言都规定了自己的字符、基本词汇、典型语句和语法规则。
同样,汇编语言也有自己的字符、基本词汇、典型语句和语法规则。
字符:ASCII字符基本词汇:符号指令(MOV、ADD)伪指令(DB、SEGMENT等)典型语句:●机器指令语句——对应机器指令的一种操作。
●伪指令语句——无机器语言与之对应,不生成机器指令。
●宏指令语句——一条宏指令对应多条机器指令,产生一组目标代码。
语法规则:基本语法单位(常量、变量、标号、表达式)前面的例子已介绍了源程序的基本结构、格式、名字的定义、语句格式,下面将更深入地介绍有关语法规则。
3.1表达式汇编程序的语句及程序格式都比较固定,语句中除正确选择操作符之外,主要问题在于正确表示操作数地址,这涉及到寻址方式,可以归结到地址表达式的使用。
表达式:由常数、寄存器、标号、变量加上运算符构成的式子。
3.1.1.常量与数值表达式一.常量常量:从源程序翻译成目标程序期间已经有确定数值的量。
用途:赋值、作立即数、位移量。
由常量与运算符组成的式子。
数值表达式在汇编期间进行运算,结果为常量。
汇编期间允许对常量进行3种运算:1.算术运算包括:+、–、*、/、模除(MOD,取余数)、右移、左移。
2.逻辑运算●逻辑乘:AND(与)●逻辑加:OR(或)●按位加:XOR(异或)●逻辑非:NOT(非)3.关系运算包括:相等(EQ)、不等(NE)、小于(L T)、大于(GT)、小于等于(LE)、大于等于(GE)。
运算结果:关系不成立,结果为0;关系成立,结果为–1(0FFFFH)。
如:N = 50M = (N EQ 50)该关系成立,M =–1。
3.1.2.变量、标号与地址表达式一.变量变量:数据存贮单元的名字。
(存放地址的符号表示)。
变量有三个属性:段、EA、类型。
其中类型由定义时的伪指令确定(DB、DW、DD、DT)。
变量的定义:格式:[变量名] 数据定义伪指令表达式[,…]数据定义伪指令:DB、DW、DD、DQ、DT等。
8086汇编语言语句的类型和格式

⑴ 算术运算符:+、-、*、/和取模运算。
⑵ 逻辑运算符:、、和。
⑶ 关系运算符:、、、、、。结果只有两个全 1或全0。
⑷ 分析运算符:利用分析运算符可以把一个存 储单元地址分解为段地址和偏移地址等。分析运算符 有 、 、、和等。
分析运算符表达式
带分析运算符的表达式
: ,2[] ;取一个字节加数 1 0F8H,60H,0,74H,3 ;被加数 第一条语句是指令语句,其中“:”是名字,“”是指令助记符, “,2[]”是操作数,“;”后面是注释部分;第二条语句是伪指 令语句,其中“1”是名字,“”是伪指令定义符,“0F8H, 60H,0,74H,3”是操作数,“;”后面是注释部分。
⑵ 定义变量的类型为,给变量分配字操作数。
⑶ 定义变量的类型为,给变量分配双字操作 数。
除了常数、表达式和字符串外,问号“?”也 可以作为数据定义伪指令的操作数,此时仅给变量保 留相应的存储单元,而不赋与变量某个确定的初值。
当同样的操作数重复多次时,可用重复操作符 “”表示,其形式为:
n (初值[,初值…0])
1) 名字
汇编语言语句的第一个组成部分是名字()。在指令语句 中,这个名字是一个标号。指令语句中的标号实质上是指“:”后 面指令所在的存储地址(逻辑地址)。供、和等指令作操作数使用, 以寻找转移目标地址。并非每条指令语句必须有标号,但如果 一条指令前面有一标号,则程序中其它地方就可以引用这个标 号。在例5.1中,、就是标号。标号后面有一个冒号。
• , K3
;()←20H,返回前面的数值
• , K4
;()←01H
• , K3
;()←40H
• , K4
;()←04H
汇编语言程序设计_第3章 80x86指令系统

3.3.2 算术指令
1. 加法
一般形式:
ADD dest, src ; dest = dest + src
ADC dest, src ; dest = dest + src + CF
INC
dest
; dest = dest + 1
语法格式:
ADD reg/mem, reg/mem/imm
ADC reg/mem, reg/mem/imm
movsx ax, al ; 等价于cbw movsx eax, ax ; 等价于cwde movsx eax, al ; 等价于顺序执行cbw与cwde
2019/8/26
80x86汇编语言程序设计
3.3.1 数据传送指令
(3)MOVZX 一般形式: MOVZX dest, src ; src零扩展为dest;386新增 语法格式: MOVZX reg16, reg8/mem8 MOVZX reg32, reg8/mem8/reg16/mem16
2019/8/26
80x86汇编语言程序设计
3.3.1 数据传送指令
5. 堆栈操作指令
80x86系统的堆栈具有如下特点: 堆栈是在内存的堆栈段中,具有“先进后出”的特点。 堆栈只有一个出入口,即当前栈顶。当堆栈为空时,栈顶和栈底指向同一内存单
元。 堆栈有两个基本操作:PUSH(进栈)和POP(出栈)。PUSH操作使栈顶向低地
INC
reg/mem
对标志位的影响:
ADD、ADC:按一般规则影响CF、OF、SF和ZF。 INC:不影响CF,其它同ADD。 说明:ADD与ADC的2个操作数必须类型匹配,且不能同时是内存操作数。
2019/8/26
8086指令编码格式 -回复

8086指令编码格式-回复[8086指令编码格式]8086指令编码格式是指8086处理器指令所使用的编码格式。
8086是Intel公司于1978年推出的一款16位微处理器,它是x86微处理器系列的第一代产品。
8086指令编码格式是为了使处理器能够正确解码指令并执行对应的操作而设计的。
8086指令编码格式包含了多个部分,包括指令前缀、操作码、操作数等。
下面我将一步一步回答各部分的具体内容,以帮助理解8086指令编码格式的内部结构以及其用途。
1. 指令前缀:指令前缀是位于指令编码的开头的一组额外的位。
这些位用于改变指令的默认行为或者提供额外的信息。
例如,寄存器前缀指示指令使用的寄存器是通用寄存器还是特殊寄存器。
重复前缀用于指示某些指令需要被重复执行。
段前缀用于指定操作数的地址所在的段。
2. 操作码:操作码是指令的主要部分,它提供了对应的操作或动作。
8086处理器支持多种不同类型的操作码。
其中一些操作码用于执行算术和逻辑操作,如加法、减法、与、或等。
其他操作码用于控制处理器的行为,如跳转、调用子程序、中断等。
3. 操作数:操作数是指令操作的对象。
8086处理器支持多种类型的操作数,包括寄存器、内存地址等。
寄存器操作数直接指定了一个寄存器。
内存操作数指定了一个内存地址,通过该地址可以读取或写入数据。
立即操作数直接包含了一个数值,它可以是一个字节或者一个字。
8086指令编码格式具有一定的灵活性,这使得它可以适应不同的指令和操作。
下面以几个具体的例子来分析一下8086指令编码格式的使用。
例1:MOV指令MOV指令用于将数据从一个位置复制到另一个位置。
它的编码格式如下:MOV <目标操作数>, <源操作数>其中,目标操作数和源操作数可以是寄存器、内存地址或者立即操作数。
例如,要将寄存器AX的值复制到寄存器BX,可以使用以下编码:MOV BX, AX例2:ADD指令ADD指令用于对两个操作数进行相加。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
返回目录第三章 8086汇编语言程序格式练习题3.4.1 单项选择题1.下列选项中不能作为名字项的是()。
A.FH B.A3 C.3B D.FADC2.下列指令不正确的是()。
A.MOV AL,123 B.MOV AL,123QC.MOV AL,123D D.MOV AL,123HAX是16位寄存器,ah和al都是8位寄存器ah是AX的高8位,al是AX的低8位ah=01h al=23h3.下列指令不正确的是()。
A.MOV BL,OFFSET A B.LEA BX,AC.MOV BX,OFFSET A D.MOV BX,A4.若定义“BUF DB 1,2,3,4”,执行MOV AL,TYPE BUF 后AL=()。
A.0 B.1 C.2 D.35.若定义“A EQU 100”,执行“MOV AX,A”后,AX=()。
A.A的偏移地址 B.A单元中的内容C.100 D.A的段地址等价语句的一般使用格式如下:符号名EQU 表达式作用是左边的符号名代表右边的表达式。
6.若定义“B DW 1,2,10 DUP(0)”,则该伪指令分配()字节单元。
2+2+10*2=24A.10 B.20 C.22 D.247.若定义“C DD 2,4”,则该伪指令分配()个字节单元。
4+4=8A.2 B.4 C.6 D.88、伪指令是()规定的汇编说明符,它在源程序汇编时进行说明。
A、DEBUGB、LINKC、MASMD、EDIT9.在上机操作过程中,MASM命令执行后,除了生成一个目标文件外,根据选择还可以生成一个()文件。
A..LST B..EXE C..MAP D..ASM 10.LINK命令执行后可以生成一个以()为扩展名的文件。
A.ASM B.EXE C.OBJ D.COM 11.一个段最大可定义()字节。
A.1M B.64K C.32K D.16K12.若要求一个段的起始位置能被256整除的单元开始,在定位方式选项中应选( D )。
A.BYTE B.WORD C.PARA D.PAGE13.宏指令与子程序相比,在多次调用时,宏指令调用的目标程序长度比子程序调用的(长)。
A.相同B.长 C.短 D.不定14.宏指令与子程序相比,子程序调用的执行速度比宏指令的(慢)。
A.相同 B.快C.慢 D.不定15.ASSUME伪指令说明了汇编程序所定义段与段寄存器的关系,它只影响( A )的设定。
A.源程序 B.目标程序 C.汇编程序 D.连接程序16.设A和B为字变量,C为标号,下列指令中不正确的是()。
A.MOV AX,A B.MOV AX,BC.JNE A 条件转移指令,格式为JNE 标号 D.JMP C17.代码段中的语句()表示该段结束。
A.ASSUME B.CODE ENDSC.START:MOV AX,DATA D.END START18.过程定义语句以“过程名PROC”开始,以过程名()结束。
A.ENDS B.ENDP C.ENDM D.END19.一个段可以放在内存的任何地方,但起始地址应该从一个能被()整除的单元地址开始。
A.16 B.32 C.64 D.12820.在数据定义语句中,下列描述不正确的是( A )。
A.存放存储单元的地址可以用字节表示B.存放存储单元的地址可以用字表示C.存放存储单元的地址可以用双字表示D.存放存储单元的地址可以用四字表示3.4.2 多项选择题1.在8086汇编语言中,语句的种类有()。
A.指令性语句 B.指示性语句 C.汇编语句D.说明语句2.在下列的选项中,不能作为名字的有()。
A.AX B.3MA C.ABCD D.MOV3.在下列的选项中,作为变量的类型有()。
A.字节 B.字 C.双字 D.近程4.在下列的选项中,作为标号的类型有()。
A.DB B.DD C.NEAR D.FAR5.在运算符OFFSET后可以是(标号和变量)。
A.标号 B.变量 C.表达式 D.数字6.在指令“LEA BX,X”中的X可以是( ABC )。
A.标号 B.变量 C.表达式 D.数字7.不能分配内存单元的伪指令语句有( AC )。
A.EQU B.DW C.= D.DD8.定义一个段的伪指令语句有( AD )。
A.NAME SEGMENT B.NAME PROCC.NAME ENDP D.NAME ENDSB和C是定义过程的9.定义一个过程的伪指令语句有()。
A.NAME SEGMENT B.NAME PROCC.NAME ENDP D.NAME ENDS10.宏指令与子程序的主要区别在于( BCD )。
A.完成的功能完全不同B.目标程序的长度不同C.执行程序的速度不同D.汇编时处理的方式不同3.4.3 填空题1.汇编语言的语句有指令语句和伪指令,宏指令是指令语句的另一种形式。
2.标号的三个属性是段地址、偏移地址和类型。
3.变量的三个属性是段地址、偏移地址和类型。
4.标号的类型有近程(near)和远程(far)。
5.变量的类型有 byte 、 word 、 dword 、四字(八字节)和十字节。
6.等价(equ)语句不能重复定义、等号(=)语句可以重复定义。
7.等价语句和等号语句不分配内存单元。
8.语句“MOV BX,OFFSET A”可用 LEA BX,A 一条指令代替。
9.若定义“A DW 1234H”,指令“MOV AL,BYTE PTR A”执行后,AL= 34H 。
MOV [BX] ,WORD PTR 10H; 立即数对内存单元赋值,两个类型都不明确MOV BL, BYTE PTR NUM; 将内存字型数据取前一个字节数据MOV BL, BYTE PTR NUM+1; 将内存字型数据取后一个字节数据ptr应该就是pointer ,说明地址指针类型。
当两个操作数类型均不明确时,必须用byte ptr(字节属性)或Word ptr(字属性)将一个存储器操作数定义为字节或字类型。
10.若定义“B DW 1,2,30 DUP(5)”,则B分配的内存单元数是 64 字节。
2+2+30*2=6411.若定义 C DW ‘AB’,则“MOV AL,BYTE PTR C”执行后,AL= 42H 。
42H=66D B的ASCII码值为66 12.在程序的操作数项中使用的段名、标号名、变量名和符号名都必须在源程序中先定义,否则汇编程序进行汇编时就会报错。
13.使用伪指令 "段名 SEGMENT" 和 "段名ENDS" 定义一个段。
14.使用伪指令“过程名PROC” 和“过程名ENDP” 定义一个过程。
利用过程定义语句可以把程序分成小段,以便于阅读、理解、调试和修改。
15.伪指令 END [表达式] 表示整个程序结束。
16.宏展开就是用宏定义取代源程序中的宏指令。
若实元个数大于变元个数,则多余的实元不予考虑。
若实元个数少于变元个数,则多余的变元用用空格代替。
17.汇编语言源程序经 MASM 产生目标文件,它不能直接在机器上运行,还必须经过 LINK 后形成可执行文件。
18.在数据段中使用字符串时,该字符必须用引号括起来。
当定义含有多个字符的字符串时,只能使用DB 伪指令。
19.用汇编语言编写的程序称为汇编语言源程序,其扩展名为 .ASM 。
20.在源程序中只要对某一独立功能的程序段进行一次宏定义,就可以多次调用它。
3.4.4 简答题1.按照下列题目要求写出每小题的伪指令。
(1)将12H、34H、56H、78H存放在字节变量A的存储单元中。
A DB 12H,34H,56H,78H(2)将12、1638H、0E52H存放在字变量B的存储单元中。
B DW 12,1638H,0E52H(3)将字符串COMPUTER存放在C变量的存储单元中。
C DB 'COMPUTER'(4)将D字节变量的100个单元设置为0。
D DB 100 DUP(0)(5)将D的偏移地址存放在E变量中。
E DW D2.设数据段定义如下:DATA SEGMENTBUF1 DB 2,3BUF2 DW 4,5,6BUF3 DB 2,100 DUP(0)BUF4 DB ‘ABCDE’BUF5 DW BUF3BUF6 EQU $-BUF3DATA ENDS请回答:(1)该数据段占用的内存有多少字节?1+1+2+2+2+1+100+5=114(2)BUF5单元中的值是多少?0008H(1+1+2+2+2)(3)BUF6的值是多少?108(“$”是汇编语言中的一个预定义符号,等价于当前正汇编到的段的当前偏移值。
指令“jmp $+3”中的“$”表示当前这条指令在代码段中的偏移量。
指令“jmp $+3”表示要向前跳转到距离这条指令3个字节的地方。
若是“jmp $-3”,则表示要向后跳转到距离这条指令3个字节的地方。
“$”可用于表达式,并且可以用于表达式的任意位置。
)(4)执行“MOV AL,BUF4+2”指令后,AL= 43H (C的ASCII码)。
(5)执行“MOV AX,WORD PTR BUF1”指令后,AX= 0302H。
3.设数据段定义如下:DATA SEGMENTA DW 23,45B DW ‘EF’C = $+5D DB 10 DUP(?)E EQU $-DF DW DDATA ENDS请回答:(1)该数据段占用的内存有多少字节?2+2+2+10(2)C的值为多少?11(3)E的值为多少?10(4)执行“MOV AX,F”指令后,AX= 0006H (2+2+2)(5)执行“MOV AL,BYTE PTR B”指令后,AL=46H(F的ASCII码)。
4.设数据段定义如下:DATA SEGMENTBUF1 DB 36H,3,2BUF2 DW 1364H,253HBUF3 DB 30 DUP(‘ABC’)BUF4 DW $—BUF3BUF5 DB 100 DUP(0)DATA ENDS请回答:(1)执行“MOV AX,WORD PTR BUF1”后,AX= 。
(2)执行“LEA BX,BUF3”后,BX= 。
(3)执行“MOV CX,BUF4”后,CX= 。
(4)执行“MOV AL,BUF3+2”后,AL= 。
(5)执行“MOV AX,BUF2+1”后,AH= 。
5.设数据段定义如下:DATA SEGMENTA1 DB 10 DUP(‘ ’)A2 DW 1234H,5678H,341HA3 DW $—A2A4 DW A2A5 DB 7,3,2DATA ENDS请回答:(1)用一条指令将A2的偏移地址送BX。
(2)将A1的第6个字节送字符‘A’的ASCII码(3)将A2的第3个字节的内容送AL。
(4)将A2的第3个单元开始的字内容送AX。