第4讲 变量定义及常用伪指令

合集下载

课件:第7章 汇编语言与汇编程序4 常用伪指令

课件:第7章 汇编语言与汇编程序4 常用伪指令
DECADD MACRO ADD AL,CL DAA ENDM
显而易见,这是一个无形式参数的宏定义。
21
如果对分别存放在任意8位寄存器或存储单元中 的两个压缩型的BCD数进行加法运算,则可将上例宏定 义改写为
DECADD1 MACRO OPR1,OPR2 MOV AL,OPR1 ADD AL,OPR2 DAA MOV OPR1,AL ENDM
12
7.4.4 汇编指令中的地址操作符
地址操作符可取得名字或标号的段地址和偏移 地址,地址操作符如下表所示:
[]
将括起的表达式作为存储器地址指针
$
当前偏移地址
:
段前缀,采用指定的段地址寄存器
OFFSET 名字/标号 返回名字或标号的偏移地址
SEG 名字/标号
返回名字或标号的段地址
ORG 数值表达式 将汇编地址计数器置成数值表达式所给定的值 13
这是一个带有两个形式参数的宏定义。宏指令为 DECADD1。
22
例如有以下宏调用:
DECADD1 DL, BUFFER
DECADD1 AREA1, AREA2
则汇编时进行宏展开,得到以下指令:
DECADD1 DL, BUFFER + MOV AL, DL + ADD AL, BUFFER + DAA + MOV DL, AL
例: dataA db " hello files! " dataA_size=$-offset dataA
EB DB 0,1,4,9,16,25, DB 36,49,64,81
…… MOV SI, SEG EB MOV DS, SI MOV SI, OFFSET EB INC SI MOV AL, DS:[SI]

4-10汇编伪指令

4-10汇编伪指令

段定义伪指令
类别名,指明程序连接时,段间次序的确定方法
LINK程序将各模块相同‘类别名’的各段依次序连续存 放在内存中,但各段相互独立。缺省项为空。
段定义伪指令示例
D_SEG SEGMENT NUM1 DB 10 DUP(?)
D_SEG ENDS
S_SEG SEGMENT DW 100 DUP(?)
可为常数、表达式、?表达式、字符串、DUP表达式 字符串用单引号括起来,如‘ABCDE’ DUP表达式格式:n DUP(参数{[,参数]})
数据定义伪令
DATA SEGMENT X1 DB 40H X2 DW 1764H X3 DB 10,20,30 Y1 DB 20H,? S1 DB ‘HEL’ S2 DB ‘H’, ‘E’, ‘L’ S3 DW ‘HE’ V1 DW 2 DUP(2,4) V2 DB 2 DUP(?,2 DUP(‘A’,‘B’) ) DATA ENDS
S_SEG ENDS
E_SEG SEGMENT STRING DB 'HELLO'
E_SEG ENDS
回顾: 在汇编程序中,从段的性质上 看,可分为代码段、堆栈段、 数据段和附加段4种。
每个段具体对应到什么性质的 段,取决于段寄存器的指向
指定段寄存器伪指令
格式:ASSUME 段寄存器:段名 {[,段寄存器:段名]} 操作:明确段和段寄存器的关系 说明:①代码段中必须至少有一个ASSUME语句,
S_SEG SEGMENT PARA STACK DW 100 DUP(?)
S_SEG ENDS
思考:若有多个STACK属 性的堆栈段,结果如何?
缺省指定:当无组合类型为STACK的段时,无论是否用 ASSUME设定,SS自动指向程序区开始(SP=0000H)

8086汇编语言伪指令

8086汇编语言伪指令

一、伪指令详解伪指令在百度百科中的定义为:伪指令(Pseudo Instruction)是用于对汇编过程进行控制的指令,该类指令并不是可执行指令,没有机器代码,只用于汇编过程中为汇编程序提供汇编信息。

例如,提供如下信息:哪些是指令、哪些是数据及数据的字长、程序的起始地址和结束地址等。

伪指令有2个特点:1.由于是伪“指令”,因而它只存在于汇编语言中。

高级语言中不叫指令,叫语句;2.由于是“伪”指令,也即“假”指令,因而不是可执行指令,不会产生机器代码,不会占用ROM空间,只用于汇编过程中为汇编程序提供汇编信息。

与指令的区别::1.指令是在执行阶段发挥作用的,由CPU(Intel、AMD等)来执行。

2.伪指令是在编译阶段发挥作用的,由汇编器(MASM、TASM等)来解释。

二、数据定义伪指令为源程序中的数据和堆栈区分配数据存储单时,使用最多的伪指令。

数据定义伪指令格式如下:常用的数据定义伪指令类型有:∙DB(定义字节,常用)一个字节数据占1个字节单元,读完一个,偏移量加1∙DW(定义字,常用)一个字数据占2个字节单元,读完一个,偏移量加2∙DD(定义双字)一个双字数据占4个字节单元,读完一个,偏移量加4∙DQ(定义四字)一个四字数据占8个字节单元,读完一个,偏移量加8∙DT(定义十字节,用于BCD码)数据定义伪指令后面的初值表可以是常数、表达式、字符串。

例如:D2DW110*230;为D2分配1个字,存放表达式的值D3DB‘GOOD!’;为D3分配5字节,用来存放字符串‘GOOD!’D4DD2.4E+3;为D4分配2个字,存放一个浮点数D5DB‘AB’;为D5分配2字节,字符A在低字节,B在高字节D6DW‘AB’;为D6分配1个字,字符A在高字节,B在低字节S1DB5DUP(?);为S1预留5字节的存储空间S2DW3DUP(0);为S2分配3个字,初值设为0语句1相当于C语言中的DW D2=110*230,只不过是语法结构不太一样注意:通过变量名操作时,变量名代表存储区的第一个数据的地址。

第4讲_1 4.4-4.5伪指令

第4讲_1 4.4-4.5伪指令
VAL = 100 MOV AL,VAL VAL = VAL+10 MOV AL,VAL
伪指令与EQU伪指令的差别: ① =伪指令只能代表表达式或常数,不能是指令助记符等。 ② EQU定义的标识符不能重定义,而=定义的可以。
4
4.4.2 数据定义伪指令
格式:标号 DB/DW/DD/DQ/DT 表达式 格式 功能:用来定义一个存储单元的标识符号名, 功能 并初始化该单元或由该单元开始的若干连续 单元。初始化单元就是将一个确定的数值或 不确定的值(在定义语句中用?表示)放入 指定的内存单元。
1AH 1AH 1AH 1AH 1AH 04H 04H 0FH 04H 04H 0FH 7FH ?? ?? ?? 001CH 001DH 001EH 001FH 0020H 0021H 0022H 0023H 0024H 0025H 0026H 0027H 0028H 0029H 002AH
6
SECOND
DFST FFH FFH FFH FFH 00H 00H 00H 80H 00H 80H 12H 42H 00H 80H 12H C2H 0052H 0053H 0054H 0055H 0056H 0057H 0058H 0059H 005AH 005BH 005CH 005DH 005EH 005FH 0060H 0061H
10
4.4.3 段定义伪指令
1. 段首说明伪指令 SEGMENT 2. 段结束伪指令 ENDS 3. 段假定伪指令 ASSUME 4. 代码定位伪指令 ORG
11
段定义伪指令SEGMENT/ENDS 段定义伪指令
格式: 格式: 段名 段名 SEGMENT [定位类型 组合类型 类别名’] 定位类型][组合类型 类别名’ 定位类型 组合类型][‘类别名 ENDS

第二部分 汇编语言程序设计——伪指令

第二部分  汇编语言程序设计——伪指令

例3.2:数据定义综合应用-2/2
.code .startup mov bl,bvar mov ax,word ptr dvar[0] mov dx,word ptr dvar[2] ;取双字到DX.AX mov dx,offset msg mov ah,09h CALLDOS .exit 0 end
运算符
算术运算符 + - * / MOD 逻辑运算符 AND OR XOR NOT 移位运算符 SHL SHR 关系运算符 EQ NE GT LT GE LE 高低分离符 HIGH LOW HIGHWORD LOWWORD
地址型参数
汇编语言程序中,指令参数还有地址型,
它的主要形式是标号和名字(变量名、段 名、过程名等) 硬指令的操作数有存储单元;存储单元就 应该用地址型参数(存储器操作数)表达
定义字节单元伪指令DB
DB伪指令用于分配一个或多个字节单元, 并可以将它们初始化为指定值 初值表中每个数据一定是字节量 (Byte),存放一个8位数据: 可以是0~255的无符号数 或是-128~+127带符号数 也可以是字符串常数
data X Y data
segment ;数据段 db 'a',-5 db 2 dup(100),? db 'ABC' ends
例3.4:属性及其应用-2/5
.code .startup mov al,byte ptr v_word ;用PTR改变v_word的类型,否则类型不匹配 dec al mov v_byte,al ;对v_word的头一个字节操作,原为32H、现为31H n_label: cmp flag,1 jz s_label ;flag单元为1转移 inc flag jmp n_label ;进行短转移

定义段和变量的伪指令

定义段和变量的伪指令

伪指令ASSUME则告诉汇编程序,哪一个段为数据段,哪 伪指令ASSUME则告诉汇编程序,哪一个段为数据段,哪 一个段为堆栈段,哪一个段为代码段。 伪指令ORG用来规定目标程序存放单元的偏移量。 伪指令ORG用来规定目标程序存放单元的偏移量。
结合,有两点需要说明: 1、SEGMENT和ENDS前面的标号如DATA、 SEGMENT和ENDS前面的标号如DATA、 STACK、CODE等,是用户所取。互相配对的 STACK、CODE等,是用户所取。互相配对的 SEGMENT和ENDS前的标号必须一样。 SEGMENT和ENDS前的标号必须一样。 2、ASSUME语句使汇编程序得知哪一段是数据段, ASSUME语句使汇编程序得知哪一段是数据段, 哪一段是堆栈段,哪一段是代码段。但除CS以外, 哪一段是堆栈段,哪一段是代码段。但除CS以外, 各个段寄存器的实际值,还要用MOV指令来赋给。 各个段寄存器的实际值,还要用MOV指令来赋给。 上例中可看到为数据段寄存器DS赋值的两条MOV 上例中可看到为数据段寄存器DS赋值的两条MOV 指令。
变量定义伪指令
变量定义伪指令用来定义变量的类型,并 为变量中的数据项分配存储单元。变量定 义伪指令有两种不同的格式。 格式:[变量名] 格式:[变量名] DB/DW/DD/DQ/DT 表 达式
DB( DB(define byte):定义一个字节类型的变量,其后 byte):定义一个字节类型的变量,其后 的每个操作数均占用1 的每个操作数均占用1个字节。 DW( DW(define word):定义一个字类型的变量,其 word):定义一个字 后的每个操作数均占用1个字(2 后的每个操作数均占用1个字(2个字节)。 DD( DD(define doubleword):定义一个双字类型的变 doubleword):定义一个双字类型的变 量,其后的每个操作数均占用2个字(4 量,其后的每个操作数均占用2个字(4个字节)。 DQ( DQ(define quadword):定义一个四字类型的变量, quadword):定义一个四字类型的变量, 其后的每个操作数均占用4个字(8 其后的每个操作数均占用4个字(8个字节)。 DT( DT(define ten bytes):定义一个十字节类型的变 bytes):定义一个十字节类型的变 量,其后的每个操作数均占用5个字(10个字节)。 量,其后的每个操作数均占用5个字(10个字节)。 其中,各变量定义伪指令都将高位字节数据存放在 高地址中,低位字节数据存放在低地址中。格式1又可 高地址中,低位字节数据存放在低地址中。格式1 分为以下几种具体用法。

汇编言语——常用伪指令

汇编言语——常用伪指令

(5)可以用ASSUME伪指令指定两个或两个以上的段寄存 器作为同一个段中标识符的缺省段寄存器。当数据定义与指令 写在同一个段中时,就会出现以CS、DS甚至ES一起作为一个 段的缺省段寄存器的情况。此时,有关数据的操作(取值、存 数等)优先以DS作为段寄存器。 (6)ASSUME可以在程序的不同行上出现多次,并且可以 对一个段寄存器进行两次或两次以上的对应关系指定。当程序 中用ASSUME指定了一个段寄存器是某个段的缺省段寄存器后, 在程序的后续行中一直有效,除非再次使用ASSUME伪指令改 变该段寄存器与段的对应关系。
【解】变量a的定义中出现的$是带引号的,表示ASCII码 值为24H的符号而不是偏移地址;定义变量b时用的两个$没有 加引号,表示偏移地址,按照地址分配原则,第一个$代表 0001H,第二个$代表0003H;在变量c的定义中,$出现在数值 表达式中,是当前偏移地址0005H,变量a的起始偏移地址是 0000H,两者相减的结果是5,并且不再有类型,因此可以作 为字节型变量的一项初值。图5.6是该数据段对应的内存图。 a b
5.3 ASSUME
ASSUME伪指令占一行,用于指出后续程序中所使用的变 量、标号等标识符在涉及到逻辑地址的段地址部分时,用哪 个段寄存器作为缺省段地址。 【格式】ASSUME R1:S1 , R2:S2 , ... 【说明】 (1)格式中的Ri代表段寄存器名。必须是DS、ES、SS、 CS四个之一,Si是段地址,只能是一个段名或者“SEG 变量 名”的形式。 (2)Ri:Si是一组对应关系,表示Si段中的标识符都使用Ri 作为缺省段寄存器。 。
5.6 $ $是汇编语言中的一个特殊符号,代表汇编程序在处理到$ 所在的位置时当前安排的偏移地址值。程序中出现的$可以作 为常量看待,但是不同位置上的$,其代表的值是不同的。与 一般的数据不同的是,通常所说的常量(数值)是没有类型的, 包括“OFFSET 变量名”也没有类型,但$所表示的数据一定 是字型。$一般作为字型变量定义时的一个初值使用。 【例5.18】分析下面数据段中各$符所表示的值。 data SEGMENT a DB '$' b DW $,$ c DB $-a data ENDS

第四章 伪指令

第四章  伪指令

数据定义伪指令的格式为: [变量名] DB(DW、DD、DQ、DT) 表达式1,表达式2,… 表达式1,表达式2……是给变量或指定的存储单元赋予初值,它们有以下几种形式: (a)数值表达式 数据定义伪指令可以为一个或连续的存储单元设置数值初值。 (b)字符串表达式 对于DB伪指令,字符串的长度允许超过2个字符,但不能超过255个字符,字符 串必须用单引号括起来,它可为字符串中的每个字符分配1字节单元,字符串 从左至右以字符的ASCII码形式按地址递增的顺序依次存放。 (c)?表达式 不带引号的?,用于为变量预留内存单元,暂时不存入数据,即表示所定义的 变量无确定的初值。 例如:A DW ?,?为变量A预留2个字单元。 (d)地址表达式 操作数为地址表达式时,只适用于DW和DD这两种数据定义伪指令。如果地址表 达式为一变量(标号)名,用DW伪指令则是取它的偏移地址来初始化变量;用 DD伪指令则是取它的段首地址和偏移地址来初始化变量。 (e)带DUP的表达式 格式为:n DUP (表达式),其中n为重复因子,只能取正整数,它表示定义了 n个相同的数据存储单元。
在8086汇编语言中,运算符分为:算术运算符、逻辑运算符、关系运算
符、数值返回运算符、属性运算符和字节分离运算符。
(一)、表达式
(1)数值表达式 数值表达式是由常量与算术运算符、逻辑运算符或关系运算符构成的有意 义的式子。数值表达式在汇编期间进行运算,运算结果为一数值常量,它 只有大小而没有属性。
数据定义伪指令的格式为: [变量名] DB(DW、DD、DQ、DT)
Байду номын сангаас
表达式1,表达式2,„
其中:变量名是可选项,它仅代表所定义数据存储区第一个单元的地址; DB、DW、DD、DQ和DT是伪指令符,具体一条数据定义伪指令取5种之一。 DB定义的是字节类型的变量,每个表达式被分配1个字节单元。 DW定义的是字类型的变量,每一个表达式被分配1个字单元(2个字节)。 DD定义的是双字类型的变量,每一个表达式被分配2个字单元(4个字节)。 DQ定义的是四字类型的变量,每一个表达式被分配4个字单元(8个字节)。 DT定义的是十字节类型的变量,每一个表达式被分配10个字节单元。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

汇编语言程序的语句格式
⑴ 执行性语句——由硬指令构成的语句,它通常对应 一条机器指令,出现在程序的代码段中: 标号: 硬指令助记符 操作数,操作数 ;注释
伪指令的参数可以是常数、变量名、 表达式等,可以有多个,参数之间 用逗号分隔 ⑵ 说明性语句——由伪指令构成的语句,它通常指示
汇编程序如何汇编源程序: 名字 伪指令助记符 参数,参数,…
字变量和字常量的应用:
;定义WNUM为常量
;定义COUNT变量,假设在数据段的偏移地址为10H
MOV AX,[BX+SI+WNUM] MOV AX,COUNT MOV AX,[SI+COUNT]
; MOV AX,[BX+SI+5678H]
; MOV AX,[0010H] ; MOV AX,COUNT[SI] ; MOV AX,[SI+10H]
数和数值表达式;
汇编语言程序中,指令参数还有地址型,它的主要形式是标
号和名字(变量名、段名、过程名等)
成功学院信工系
张莉
(1) 常数
常数(常量)表示一个固定的数值 它又分成多种形式:
(1)十进制常数 (2)十六进制常数 (3)二进制常数
(4)八进制常数
(5)字符串常数 (6)符号常数
成功学院信工系
张莉
例:显示字符串 .model small .stack .data
如果去掉“$”显示的结果又会是什么?
buf1 db "Hello,",0dh,0ah," this is an example.$",0dh,0ah
buf2 db "--END--$" .code .startup mov dx, offset buf1 mov ah, 9 int 21h lea dx, buf2 mov ah, 9 int 21h .exit 0 end
成功学院信工系
张莉
例2.50:输入字符串
buffer db 81
;定义缓冲区 ;第1个字节填入可能输入的最大字符数
db 0 ;存放实际输入的字符数 db 81 dup(0) ;存放输入的字符串 ... mov dx,seg buffer
;伪指令seg取得buffer的段地址
mov mov mov int
LEA BX,COUNT MOV BX,OFFSET COUNT
; LEA BX,[0010H]
; MOV BX,0010H
成功学院信工系 张莉
定义双字单元伪指令DD
DD 伪指令用于分配一个或多个双字单元,并可以将 它们初始化为指定值 初 值 表 中 每 个 数 据 是 一 个 32 位 的 双 字 量 ( Double Word): 可以是有符号或无符号的32位整数 也可以用来表达16位段地址(高位字)和16位的 偏移地址(低位字)的远指针 vardd farpoint DD 0,?,12345678h DD 00400078h
成功学院信工系 张莉
3 变量和标号的属性
① 地址属性
标号和名字对应存储单元的逻辑地址
逻辑地址包括:段地址和偏移地址
② 类型属性
标号、子程序名的类型可以是 NEAR(近)和FAR (远),分别表示段内或段间 变量名的类型可以是 BYTE(字节)、 WORD(字) 和DWORD(双字)等
成功学院信工系
成功学院信工系 张莉
字符串输入的功能调用
DOS功能调用INT 21H

关键要定义好缓冲区
功能号:AH=0AH 入口参数:DS:DX=缓冲区首地址
执行该功能调用时,用户按键,最后用回车确认
本调用可执行全部标准键盘编辑命令;用户按回车键
结束输入,如按Ctrl+Break或Ctrl+C则中止
成功学院信工系
张莉
字符串输出的功能调用
DOS功能调用INT 21H 功能号:AH=09H 入口参数: DS:DX=欲显示字符串在主存中的首地址 字符串应以$(24H)结束 功能:在显示器输出指定的字符串 可以输出回车( 0DH )和换行( 0AH )字符产生 回车和换行的作用
成功学院信工系
;注释
成功学院信工系
张莉
标识符
标识符(Identifier)一般最多由31个字母、数字及规定的
特殊符号(如 _、 @ 、$、?、%)组成,不能以数字开头。 默认情况下,汇编程序不区别标识符中的字母大小写
一个程序中,每个标识符的定义是唯一的,还不能是汇编
语言采用的保留字
o 硬指令助记符——例如:MOV、ADD o 伪指令助记符——例如:DB、EQU o 操作符——例如:OFFSET、PTR o 寄存器名——例如:AX、CS o 预定义符号——例如:@data
成功学院信工系
张莉
定位伪指令
定位伪指令控制数据的偏移地址 ORG 参数 ORG伪指令是将当前偏移地址指针指向参数表达的 偏移地址: ORG 100h ;从100h处安排数据或程序 ORG $+10 ;使偏移地址加10,即跳过10个字节空间 MASM中,符号“$”表示当前偏移地址值 array DB 12,34,56 len equ $-array ;记录变量array所占字节数
ds,dx ;设置数据段DS dx,offset buffer ah,0ah 21h 想一想:如何实现将输入的字符串进行输出
成功学院信工系 张莉
.model small .stack .data msg1 db "please input a string:",0dh,0ah,"$" msg2 db "contents of the string is:",0dh,0ah,"$" buffer1 db 100 db 0 db 100 dup(0) .code .startup mov dx, offset msg1 mov ah, 9h int 21h mov dx,seg buffer1 mov ds,dx mov dx,offset buffer1 mov ah,0ah int 21h

本课程采用微软宏汇编程序 MASM 6.15
成功学院信工系 张莉
标号是反映硬指令位置(逻辑地址)的标识符, 语句中由分号“;”开始的部分为注释内容,用以增加 源程序的可读性 后跟一个冒号分隔 必要时,一个语句行也可以由分号开始作为阶段性注释 名字是反映伪指令位置(逻辑地址)和属性的标识符, 处理器指令的操作数可以是 汇编程序在翻译源程序时将跳过该部分,不对它们做任何处理 后跟空格或制表符分隔,没有一个冒号 立即数、寄存器和存储单元
成功学院信工系
张莉
第4讲 变量定义及常用伪指令
1 数值型参数 2 变量定义伪指令 3 变量和标号的属性 4 字符串的输入输出方法
成功学院信工系
张莉
1 数值型参数
在源程序语句格式的4个组成部分中,参数是指令的操作对
象(学习硬指令时被称为操作数),参数之间用逗号分隔
汇编语言程序中,指令参数有数值型,它的主要形式是常
设置变量名是为了方便存取它指示的存储单元
变量名可以没有。这种情况,汇编程序将直接为初值
表分配空间,无符号地址
成功学院信工系
张莉
初值表
初值表是用逗号分隔的参数 主要由常数、表达式或?、DUP组成
?——表示初值不确定,即未赋初值; DUP——表示重复初值 DUP的格式为: 重复次数 DUP(重复参数)
成功学院信工系
张莉
mov al,X
;此处X表示它的第1个数据,故AL←'a'
dec X+1
;对X为始的第2个数据减1,故成为-6
mov Y,al
;现在Y这个字符串成为 'aBC'
成功学院信工系
张莉
定义字单元伪指令DW
DW伪指令用于分配一个或多个字单元,并可以将 它们初始化为指定值 初值表中每个数据一定是字量(Word),一个字 单元可用于存放任何16位数据: 一个段地址 一个偏移地址 两个字符 0~65535之间的无符号数 -32768~+32767之间的带符号数
张莉
第4讲 变量定义及常用伪指令
硬指令和伪指令

硬指令——使CPU产生动作、并在程序执行时才处理的 语句,如mov、add等

伪指令( Directive ) —— 不产生 CPU 动作、在程序执 行前由汇编程序处理的说明性语句,例如,数据说明、 变量定义等等 伪指令与具体的处理器类型无关,但与汇编程序的版本 有关
成功学院信工系
张莉
data segment ;数据段 count dw 8000h,?,'AB' maxint equ 64h number dw maxint array dw maxint dup(0) data ends
成NUM EQU 5678H COUNT DW 20H
张莉
(2) 数值表达式
数值表达式一般是指由运算符连接的各种常数所构成的表
达式
汇编程序在汇编过程中计算表达式,最终得到一个数值
程序运行之前,就已经计算出了表达式;所以,程序运行
速度没有变慢,但增强程序的可读性
成功学院信工系
张莉
运算符
算术运算符 逻辑运算符 移位运算符 关系运算符 高低分离符
成功学院信工系
张莉
2 变量定义伪指令
变量定义( Define )伪指令为变量申请固定长度
的存储空间,并可同时将相应的存储单元初始化
变量名 伪指令助记符 初值表
变量定义伪指令最常使用
成功学院信工系
张莉
变量名
变量名为用户自定义标识符,表示初值表首元素的逻
相关文档
最新文档