第4章 汇编语言程序设计-D10
第4章 汇编语言程序设计简介全

第 4 章 汇编语言程序设计简介
CLEAR: CLR A MOV DPTR, #8000H ; 工作单元首址送指针 MOV R2, 50 ;
CLEAR1: MOVX @DPTR, A INC DPTR ; DJNZ R2, CLEAR1; RET
(3) 循环控制部分: 这部分的作用是修改循环变量和控制变 量, 并判断循环是否结束, 直到符合结束条件时, 跳出循环为止。
(4) 结束部分: 这部分主要是对循环程序的结果进行分析、 处理和存放。
第 4 章 汇编语言程序设计简介 例 5 工作单元清零。
在应用系统程序设计时, 有时经常需要将存储器中各部 分地址单元作为工作单元, 存放程序执行的中间值或执行结 果, 工作单元清零工作常常放在程序的初始化部分中。
MOV @R0, A
;
RET
第 4 章 汇编语言程序设计简介
例 2 将两个半字节数合并成一个一字节数。
设内部RAM 40H#, 41H单元中分别存放着 8 位二进制数,
要求取出两个单元中的低半字节, 并成一个字节后, 存入
50H单元中。 程序如下:
START: MOV R1, #40H ; 设置R1
第 4 章 汇编语言程序设计简介 图 4.5
第 4 章 汇编语言程序设计简介
例 9 设某系统的模数转换器是ADC0809, 它的转换结束信 号 EOC连接到8031 的P1.7端, 当 EOC的状态由低变高时, 则 结束循环等待, 并读取转换值, 其程序如下:
START: MOV DPTR, #addr ; 0809端口地址送DPTR MOV A, #00H ; 启动0809 MOVX @DPTR, A
第4章-汇编语言程序设计习题解答

LOP: LODSB XCHG AL,[DI] XCHG SI,DI DEC DI STOSB XCHG SI,DI INC DI LOOP LOP
习题4.14
• 现有一子程序: SUB1: PROC TEST AL,80H(1000 0000B);AL的值与80H相“与”,判断正负 JE PLUS ;如果AL的首位为0(即为正),则转移到PLUS ;如果AL为负,则顺序执行 TEST BL,80H ; 判断BL的值的正负 JNE EXITO ;如果BL的首位为1(为负),则转移到EXITO ;如果BL为正,则顺序执行 JMP XCHANGE;转移到XCHANGE PLUS: TEST BL,80H ;判断BL的值的正负 JE EXITO ;如果BL的首位为0(即为正),则转移到EXITO ;如果BL为负,时顺序执行 XCHANGE: XCHG AL,BL ;AL与BL交换 EXITO: RET ;返回主程序 SUB1 ENDP 试回答(1)子程序的功能是什么? (2)如调用前AL=9AH,BL=77H,那么返回主程序时AL=?;BL=? 解答:(1)子程序的功能是判别AL和BL中的数是否为异号数,当为异号时交换,否则不 变。 (2) AL中的数据的最高位为1,BL中的数据的最高位为0,即两个数为异号,所以 要交换AL和BL中的内容,即AL=77H,BL=9AH。
习题4.17
• 设在数据段中有X,Y两个变量(字节单元),试编写程序 段计算(只写有关功能的指令). X 当X≥0时 • Y= │X│ 当X <0时
X Y
· · ·
DB DB
X Y
AL,X AL,0 DONE AL Y,AL
MOV CMP JGE NEG DONE: MOV
习题4.18
单片机应用技术(第三版)第四章汇编语言程序设计课件

第4章 汇编语言程序设 计 实训4 信号灯的控制2
4.1 概述 4.2 简单程序设计 4.3 分支程序设计 4.4 循环程序设计 4.5 查表程序 4.6 子程序设计与堆栈技术 本章小结 习题4
第4章 汇编语言程序设计
实训4 信号灯的控制2
1. 实训目的 (1) 掌握汇编语言程序的基本结构。 (2) 了解汇编语言程序设计的基本方法和思路。 2. 实训设备与器件 (1) 实训设备:单片机开发系统、微机等。 (2) 实训器件与电路:参见实训1电路图。 3. 实训步骤与要求 (1) 运行程序1,观察8个发光二极管的亮灭状态。
ORG 0000H ;程序从地址0000H开始存放
START: MOV P1,#00H
;把立即数00H送P1口,点亮
;所有发光二极管
ACALL DELAБайду номын сангаас ;调用延时子程序
MOV P1,#0FFH
;灭掉所有发光二极管
第4章 汇编语言程序设计
(2) 在单片机开发调试环境中,将内部RAM的20H单元内
容修改为00H,运行程序2,观察8个发光二极管的亮灭状态;
重新将内部RAM的20H单元内容修改为80H,再次运行程序2,
观察8个发光二极管的亮灭状态。
(3) 运行程序3,观察8个发光二极管的亮灭状态。
程序1:所有发光二极管不停地闪动。
第4章-汇编语言程序设计

*
目标文件中的段与目标存储器之间的关系:
目标文件
目标存储器
.bss
.data
.text
RAM
E2PROM
ROM
第4章 汇编语言程序设计
*
3. 段定义伪指令
汇编器对段的处理是通过段伪指令来区别各个段的,并将段名相同的语句汇编在一起。 汇编器有5条伪指令可识别汇编语言程序的各个部分:
;初始化数据段 ;3组数据放入.data段 ;在.bss段保留10个单元 ;0123h放入.data段 ;初始化文本段 ;1字指令 ;2字指令 ;2字指令
;初始化数据段 ;3组数据放入.data段
第4章 汇编语言程序设计
*
汇编语言源程序:
链接器能够读/写所有类型的COFF文件,默认时链接器生成的是COFF2文件,采用-vn链接选项可以选择不同类型的COFF文件。
第4章 汇编语言程序设计
*
4.2.1分段结构 所谓“段”就是在存储器映像中占据连续空间的一段独立的代码或数据。每个目标文件都分成若干段。
COFF目标文件包含以下三个默认的段: .text 段:通常内含可执行代码; .data段:通常内含已初始化数据; .bss段:是为没有初始化的数据保留空间的。
第4章 汇编语言程序设计
*
C源文件
C编译器
汇编 源文件
汇编器
汇编 源文件
COFF 目标文件
链接器
可执行的 COFF文件
宏源文件
存档器
宏库
存档器
目标 文件库
建库工具
运行时 支持库
EPROM 编程器
交叉引用 列表器
调试工具
绝对地址 列表器
汇编语言程序设计第4章

这条语句指出所定义的CODE代码段到此结束。
9)
END
START
END是保留字,指示整个程序模块到此结束。 按上述格式写出的一个程序如例4-2所示:
第4章 伪指令及汇编语言源程序结构
例4-2 NAME FIRST_DATA STRING_DA FIRST_DATA SIMPLE_EXAMPLE SEGMENT DB 'This is My First Program $' ENDS ;要显示的字符串
令语句的功能相当于若干条指令语句的功能。宏指令语句实际
上是一个指令序列,汇编时产生对应的目标代码序列。
第4章 伪指令及汇编语言源程序结构 注释语句——以分号“;”开始的说明性语句,汇编程序 不予以处理,只起注释作用,使程序易于理解。 空行语句——为保持程序书写清晰,仅包含回车换行符的 语句行。 注意:有关逻辑段的定义和说明伪指令,以及其他伪指令/
80x86系列微处理器的存储器采用了分段管理的方法,其汇
编语言是以逻辑段为基础,按段的概念来组织代码和数据的,
汇编语言源程序的结构特点有:
(1) 由若干逻辑段组成,各逻辑段由伪指令语句定义和说
明。
(2) 整个源程序以END伪指令结束。
第4章 伪指令及汇编语言源程序结构 (3) 每个逻辑段由语句序列组成,各语句可以是: 指令语句——完成一定操作功能,能够翻译成机器代码 的语句,即为第3章介绍的指令所形成的语句。指令语句对应 于CPU指令系统中的一条指令,因此为可执行语句。汇编时汇
是程序名称,用户可用任意一个标识符为程序命名。
第4章 伪指令及汇编语言源程序结构 2) DATA SEGMENT (数据定义伪指令序列) … DATA ENDS
单片机学习第四章汇编语言程序设计

ORG 0200H START:MOV R7,#15 ;循环次数 MOV R3,#0 ;装和的高字节 MOV A, 20H ; MOV R0,#21H ;加数的地址 LOOP:ADD A,@R0 ;累加和在A中 JNC NEXT ;没进位则跳NEXT INC R3 ;有进位,则高位加1 NEXT:INC R0 ;加数地址加1 DJNZ R7,LOOP MOV 61H,R3 ;将和的高位传51H中 MOV 60H,A ;将和的低位传50H中 SJMP $ END
ORG CLR MOV ADD MOV MOV →A ADDC MOV MOV ADDC MOV SJMP END
1000H C A,R0 A,R2 R0,A A,Rl
A,R3 R1,A A,#0 A,#0 R2,A $
;取被加数低字节→A ;与加数低字节相加 ;存和数低字节 ;取被加数高字节 ;与加数高字节相加 ;存和数高字节 ;加进位位 ;存和数进位位 ;
4.汇编结束伪指令 END 该伪指令指出结束汇编,即使后面还有指令, 汇编程序也不处理。
5.赋值伪指令 格式:标号 EQU 表达式 功能:将表达式的值(数据或地址)赋给标 号。
• 注意:标号为字符名称,其后无冒 号。在一个程序中对于某一个标号 只能赋一次值,一旦赋值在本程序 的任意位置就可以引用该标号。 • 例如: ORG 3000H STA EQU 80H 定义了三个标号: TAB EQU 10 STA=80H,TAB=10, MUL=4000H,在程 MUL EQU 4000H MOV A,STA 序中直接引用这三个 标号来代替80H、10、 MOV B,TAB 4000H。 LCALL MUL
;取X ;与5比较 ;X<5,则转NEXT2 ; ;设10<X,Y=X十1 ;与1l比较 ;x>10,则转NEXT4 ;5≤X≤10,Y=0
第4章汇编语言程序设计

MOV AL ,BYTE PTR AARRAY
汇编语言程序设计基础
4.ASSUME伪指
令
ASSUME 伪 指 令 告 诉 汇 编 程 序 (MASM.EXE)在对源程序汇编时,源程序 中的段名与哪个段寄存器建立关系。这种关 系只是一种承诺关系,汇编程序对源程序汇 编时,承认这种关系,但段寄存器的值并未 确定,用户必须在代码段一开始用MOV指令 对DS、ES、SS初始化。
汇编语言程序设计基础
汇编语言源程序的完整结构
STACK SEGMENT STACK DB 256 DUP(?)
TOP LABEL WORD STACK ENDS DATA1 SEGMENT
用DB、DW等伪指令定义的段的实体 DATA1 ENDS
……
……
汇编语言程序设计基础
DATA2 SEGMENT
SS:0000 H
SS:00FF H 0100
H
……
256B堆栈
区 TOP具有该单
TOP
元的偏移地址 属性,但不占
用该单元。
汇编语言程序设计基础
由于堆栈指针SP初始化后要指向栈底+1 单元,所以上述程序段中有:
……
MOV AX , STACK
MOV SS , AX
此段程序完成对
MOV SP , OFFSET TOP SS、SP的初始
即它们的边界地址(20位地址)应分别 可以被256、16、2、1除尽,分别称为以 页、节、字、字节为边界。
汇编语言程序设计基础
在实际应用中,每个段的定位类型常 选PARA(节)型。因为若选PAGE(页) 型,将会使相邻的段间有较大空间的浪 费;而选WORD或BYTE型,又很难做 到使一个段的偏移地址从0000H开始。
第4章(汇编语言程序设计)

本章要点
1. 掌握汇编语言语句格式
2. 掌握段定义源程序格式
3. 了解指令与伪指令的区别,掌握常用伪指令 的使用。
4. 掌握常量表达式、变量的定义及应用;变量、 标号的属性。 5. 掌握基本DOS功能的调用
4.1 8086汇编语言概述
汇编语言是利用指令的助记符、符号地址、 标号来编写的语言,它是机器语言的符号 表示,是低级语言。 汇编语言是面向机器的,是和CPU密切相 关的。 汇编语言编写的程序效率高,节省内存, 运算速度快。
伪指令语句主要完成变量定义、存储 器分配、指示程序开始和结束、段定义、 段分配等。 伪指令语句没有对应的机器代码,它 是由汇编程序(MASM)对源程序汇编期 间进行处理的。
4.2.1 符号定义语句
1.EQU 格式: 符号名 2.= EQU 表达式 功能: 定义符号名
格式: 符号名 = 表达式
功能:与EQU相同
标号、变量与标识符
• 标号是反映指令位置(逻辑地址)的标识符, 后跟一个冒号分隔。 • 变量是反映伪指令位置(逻辑地址)和属性 的标识符,后跟空格或制表符分隔,没有冒 号。 • 标识符一般最多由31个字母、数字及规定的 特殊符号(如 _、$、?、@)组成,不能以 数字开头。默认情况下,汇编程序不区别标 识符中的字母大小写。 • 一个程序中,每个标识符的定义是唯 一的,还不能是汇编语言采用的保留字。
语句格式
• ⑴ 指令性语句——由指令构成的语句,它通常对应 一条机器指令,出现在程序的代码段中: • [标号:] 指令助记符 [操作数1][,操作数2][;注释]
操作码
⑵ 说明性语句——由伪指令构成的语句,它通常指示 汇编程序如何汇编源程序:
[名字] 伪指令助记符 参数,参数,… [;注释]
第4章-汇编语言程序设计教案

第四章教学实施计划3课堂教学实施计划第 8 课教学过程设计:复习 0 分钟;授新课 100 分钟讨论 0 分钟;其它 0 分钟授课类型(请打√):理论课√讨论课□实验课□习题课□其它□教学方式(请打√):讲授√讨论□示教□指导□其它□教学手段(请打√):多媒体√模型□实物□挂图□音像□其它□4.1 汇编语言程序设计概述程序实际上是一系列计算机指令的有序集合。
我们把利用计算机的指令系统来合理地编写出解决某个问题的程序的过程,称为程序设计。
程序设计是单片机应用系统设计的重要组成部分,单片机的全部动作都是在程序的控制下进行的。
随着芯片技术的发展,很多标准的或功能型的硬件电路都集成到了芯片中,所以,软件设计在单片机应用系统开发中占的比重越来越大。
一、汇编语言和高级语言汇编语言:用助记符表示的指令称为汇编语言,用汇编语言编写的程序称为汇编语言源程序汇编语言也是面向机器的,它仍是一种低级语言。
汇编语言离不开具体计算机的硬件,与硬件紧密相关。
高级语言:高级语言不受具体“硬件”的限制,具有通用性强,直观、易懂、易学,可读性好等优点。
多数的51单片机用户使用C语言来进行程序设计。
C语言已经成为人们公认的高级语言中高效、简洁而又贴近51单片机硬件的编程语言。
二、汇编语言的特点•助记符指令和机器指令一一对应,所以用汇编语言编写的程序效率高,占用存储空间小,运行速度快,因此汇编语言能编写出最优化的程序。
•使用汇编语言编程比使用高级语言困难,因为汇编语言是面向计算机的,汇编语言的程序设计人员必须对计算机硬件有相当深入的了解。
•汇编语言能直接访问存储器及接口电路,也能处理中断,因此汇编语言程序能够直接管理和控制硬件设备。
•汇编语言缺乏通用性,程序不易移植,各种计算机都有自己的汇编语言,不同计算机的汇编语言之间不能通用。
三、汇编语言的语句格式•指令语句:每一条指令语句在汇编时都产生一个指令代码(也称机器代码),执行该指令代码对应着机器的一种操作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
主要内容
1 MASM宏汇编语言结构 MASM宏汇编语言结构 2 MASM汇编语言数据、表达式和运算符 MASM汇编语言数据 汇编语言数据、 3 伪指令 4 程序设计 5 DOS功能调用 DOS功能调用 6 实用程序设计举例
1
一、MASM 汇编语句结构
MASM 有两种基本语句,它们是指令语句 和指示语句(又称伪指令) 指令语句(Instruction 指令语句(Instruction statements) 指令语句又称可执行语句,它要求 CPU执行某种操作。 CPU执行某种操作。 指令语句的格式为: [符号:] 指令助记符 [操作数] [ ;注释] 符号:] 操作数] ;注释] 一条指令一条语句可分为4个字段, 一条指令一条语句可分为4个字段,其中方 . 括号中的字段为可选项。
程序中凡数据或代码的长度不大于64KB时为近程, 程序中凡数据或代码的长度不大于64KB时为近程, 否则为远程。
23
• 简化段定义 DOSSEG • MODEL SMALL • STACK DB 200H • DATA BCDBUF DB 12H • CODE START: MOV AX,DATA MOV DS,AX … END
9
(1)用数值表达式定义变量。例如: 用数值表达式定义变量。例如: 用数值表达式定义变量
K1 K2 K3 DB DW DD K1 K2 5AH 2354H 2A00 4455H 5AH 54H 23H K3 55H 44H 00H 2AH
10
;将5AH赋给字节变量K1 ;将2354H赋给字变量K2 ;将2A00 4455H赋给双字变量K3
14
例1:
ACOS EQU 1250H COUNT EQU 100 BUF EQU ACOS+1000H
MOV CL,COUNT
例2:
ONE =100 COUNT =100 A=ONE S=COUNT+100 A=A+100
15
–段定义指令 ※
在汇编程序设计中,需要将存储器分成若干段, 80486CPU访问存储器时,凭籍段寄存器对各个段 80486CPU访问存储器时,凭籍段寄存器对各个段 进行访问。通常用段定义语句(SEGMENT/ENDS 进行访问。通常用段定义语句(SEGMENT/ENDS )来定义各种类型的逻辑段。 (一)完整段定义伪指令 1. 段定义语句
13
n DUP(
式
–符号定义语句
◎等值语句(EQU) ◎等值语句(EQU) 格式:符号 EQU 表达式
功能:将表达式的值赋给EQU左边的符号。表 功能:将表达式的值赋给EQU左边的符号。表 达式可以是常数、变量、标号、数值或地址表达式。 ◎等号语句 格式:符号 = 表达式 等号语句(=)与EQU语句有同样的功能,区别 等号语句(=)与EQU语句有同样的功能,区别 在于等号语句定义的符号允许重新定义,使用更加方 在于等号语句定义的符号允许重新定义,使用更加方 便灵活。
(二)简化段定义伪指令 1. 段次序语句(DOSSEG) 段次序语句(DOSSEG)
格式:DOSSEG 格式:DOSSEG 功能:各段在内存的顺序按DOS段次序预定排列。 功能:各段在内存的顺序按DOS段次序预定排列。
2. 内存模式语句(.MODEL) 内存模式语句(.MODEL)
格式:MODEL 模式类型[.高级语言] 格式:MODEL 模式类型[.高级语言] 功能:指定数据和代码允许使用的长度。 说明:[高级语言]是可选项,可用C BASIC、FORTRAN、 说明:[高级语言]是可选项,可用C、BASIC、FORTRAN、
5
–变量
变量用来定义存放在存储器单元中的数据。 其三重属性为: ◎ 段属性(SEG) 属性(SEG) ◎ 偏移地址属性(OFFSET) 偏移地址属性(OFFSET) ◎ 类型属性(TYPE) 类型属性(TYPE) 例:DATA
变量名 SEGMENT FIRST DB 5AH
对变量的操作:
LEA AX,FIRST AX, MOV AX,SECOND AX, MOV AX, AX,FIRST[DI]
(4)用数组表达式定义变量。例如:
A1 A2 DB DW 00H,11H,22H,33H 3456H,1025,25*25,1000/3,10A0H ;(AL)=33H ;(AX)=1025
12
例:MOV AL,A1[3] MOV AX,A2[1]
◎格式二 格式 2 用于定义重复变量,其格式为: DB DW 变 量 名 DD DF DQ DT :TAB1 DB TAB3 DB 10 DUP 4 DUP 0 1,2 DUP 50H TAB2 DW 2 DUP
START
24
16
格式:
段名 SEGMENT[定位类型] ,[组合类型],[字长选 择],[类别] SEGMENT[定位类型] 组合类型] 类别] (段体) ••• 段名 ENDS
–段名:自己选定,前后一致 –定位类型: – PAGE:段的首地址后两位为00H,页边界开始 PAGE:段的首地址后两位为00H – PARA:(隐含)段的首地址后1位为0H,节边界 PARA:(隐含)段的首地址后1位为0 –DWORD:4的倍数 DWORD: –WORD: 偶地址 WORD: BYTE: BYTE:任一字节
2
–指示语句(pseude instruction statements) 指示语句(pseude 指示词句又称伪指令,它不要求CPU执行某种操 指示词句又称伪指令,它不要求CPU执行某种操 作,汇编时也不产生对应的机器代码,而仅仅告诉 汇编程序,对它后面的指令语句和操作数应该如何 产生机器目标代码。 伪指令的格式为: [名字] 名字] 伪指令定义符号 [操作数] 操作数] [;注释] [;注释]
4. CS的装入 :由起始标号确定CS和IP CS的装入 :由起始标号确定CS和
21
例:DATA SEGMENT BCDBUF DB 22H DATA ENDS EXTRA SEGMENT BUFF DB 20 DUP(00H) EXTRA ENDS STACK SEGMENT STACK SBUFF DB 200 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:EXTRA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV AX,EXTRA MOV ES,AX CODE ENDS 22 END START
20
例: STACK2 SEGMENT DW 40 DUP(?) TOP LABEL WORD STACK2 ENDS CODE SEGMENT ASSUME CS:CODE …SS:STACK2 … AX,STACK2 SS,AX SP,OFFSET TOP … CODE ENDS END START START: MOV MOV MOV
6
SECOND DW 1122H DATA ENDS
变量名:存放数据存储单元的符号地址
–标号:
给指令语句所在地址取的名字 ◎ 段属性(SEG) 属性(SEG) ◎ 偏移地址属性(OFFSET) 偏移地址属性(OFFSET) ◎ 距离属性(Distance) 距离属性(Distance) 例: (隐含为NEAR) 隐含为NEAR)
区别:伪指令名字后无冒号
3
二、 MASM 汇编语言数据、 汇编语言数据、 表达式和运算符
–常数 常数是没有任何属性的纯数值。 常数分为两种类型:数值型常数和字符 串型常数。
4
◎数值型常数 1.二进制数:以字母B结尾,如01011101B 1.二进制数:以字母B结尾, 01011101B 2.八进制数:以字母Q或O结尾,如723Q,211Q。 2.八进制数:以字母Q 结尾, 723Q,211Q。 3.十进制数:以字母D(或省略)结尾,如1995D,3508。 3.十进制数:以字母D(或省略)结尾,如1995D,3508。 4.十六进制数:以字母H结尾,如3A40H,8BH。 4.十六进制数:以字母H结尾,如3A40H,8BH。 ◎字符型常数 用单引号括起来的字符串。如‘ABCD’,‘$123456’等。 用单引号括起来的字符串。如‘ABCD’,‘$123456’等。 每个字符在机内以ASCII码存放,例如‘A’, 每个字符在机内以ASCII码存放,例如‘A’,再内存为 41H。 41H
LOOP: LOOP:MOV AX,0000 AX,
…
JMP LOOP
7
三、 伪指令(指示语言) 伪指令(指示语言)
指示性语句又称伪指令,它没有对应的机器 指令,不由CPU执行,而是在汇编程序汇编时 指令,不由CPU执行,而是在汇编程序汇编时 识别,用于说明CPU的类型、段结构、源程序 识别,用于说明CPU的类型、段结构、源程序 起止信息和段内存的安排等。 MASM的伪指令可分为变量定义语句、符号 MASM的伪指令可分为变量定义语句、符号 定义语句、段定义语句、段分配语句、过程定 义语句、群定义语句、结构定义语句、记录定 义语句等。
8
–变量定义语句 ※
变量定义语句用来定义字节、字或双字变量,变 量定义语句有两种不同的格式。 ◎格式一 [变量名] DB / DW / DD / DF / DQ / DT 表达式 变量名] 功能:为变量分配 1 个字节/字/双字/长字/四 个字节/ 双字/长字/ 字/十字节的存储单元,并赋值。 具体形式:
(2)用字符串定义变量。例如:
ONE DB “HOW ARE YOU” ;将“HOW ARE YOU” 字符串赋给变量ONE。 TWO DW ‘OK’ ;将‘OK’字符串赋给变 量TWO ONE ‘H’ ‘O’ ‘W’ … TWO ‘O’ ‘K’
11
(3)存放结果时,用(?)定义不确定值的变量
ABOV BLOW CLER DB ? DW ? DD ? ;定义变量ABOV为不确定值的字节变量 ;定义变量BLOW为不确定值的字变量 ;定义变量BLOW为不确定值的双字变量