伪指令

合集下载

伪指令

伪指令

南京航空航天大学信息科学与技术学院 石燕
DCW ( DCWU )
语法格式: 语法格式: 标号 DCW (或 DCWU ) 表达式 DCW (或 DCWU)伪指令用于分配一片连续的 ) 半字存储单元并用伪指令中指定的表达式初始化。 半字存储单元并用伪指令中指定的表达式初始化。 其中,表达式可以为程序标号或数字表达式。 其中,表达式可以为程序标号或数字表达式。 分配的字存储单元是半字对齐的, 用 DCW 分配的字存储单元是半字对齐的,而用 DCWU分配的字存储单元并不严格半字对齐。 分配的字存储单元并不严格半字对齐。 分配的字存储单元并不严格半字对齐 使用示例: 使用示例: DataTest DCW 1 , 2 , 3 分配一片连续的半字存储单元并初始化。 分配一片连续的半字存储单元并初始化。
南京航空航天大学信息科学与技术学院 石燕
SPACE
语法格式: 语法格式: 标号 SPACE 表达式 SPACE 伪指令用于分配一片连续的存储区域 并初始化为 0。其中,表达式为要分配的字节 。其中, 数。 代替。 也可用 “ % ” 代替。 使用示例: 使用示例: DataSpace SPACE 100 分配连续 100 字节的存储单元并初始化为 0
南京航空航天大学信息科学与技术学院 石燕
SETA 、 SETL 、 SETS
语法格式: 语法格式: 变量名 SETA ( SETL 或 SETS ) 表达式 伪指令 SETA 、 SETL 、 SETS用于给一 用于给一 个已经定义的全局变量或局部变量赋值。 个已经定义的全局变量或局部变量赋值。 SETA 伪指令用于给一个数学变量赋值 SETL 伪指令用于给一个逻辑变量赋值 SETS 伪指令用于给一个字符串变量赋值
南京航空航天大学信息科学与技术学院 石燕

伪指令

伪指令

第6章 6.1.5 伪指令
SEG和OFFSET
SEG返回存储器地址操作数的段地址 OFFSET 返回存储器地址操作数的段内偏移地 址部分
: NUMBER-1 DD ? CCAA EQU SEG NUMBER-1 : MOV AX,SEG NUMBER-1 MOV DS,AX MOV SI,OFFSET NUMBER-1
第6章 6.1.5 伪指令
结构的存储分配和预置
格式:变量 结构名称<赋值说明> LiPing STUDENT_RECORD <,,,’891011’>
LuiYi STUDENT_RECORD <‘LuiYi’,1,,’891011’,80H>
对结构的访问
格式:变量名.字段名 例如:MOV AL,LiPing.AGE 等价于: MOV AL,[BX].AGE
CODE_SEG
第6章:逻辑段的简化定义
.STACK [大小]
;堆栈段定义伪指令 .STACK 创建一个堆栈段,段名是: STACK 。可选的“大小”参数指定堆栈段所占存储区的 字节数,默认是1KB(=1024=400H字节)
.DATA
;数据段定义伪指令 .DATA 创建一个数据段,段名是: _DATA。数据段名可用@DATA预定义标识符表示
第6章 6.1.5 伪指令
TYPE、SIZE、LENGTH
见表6.3
段定义伪指令
SEGMENT/ENDS伪指令 成对使用,说明段的名称和范围,还可指明段 的定位类型、组合类型、分类名
段名
段名
SEGMENT [定位类型][组合类型][分类名] : 本段程序内容(指令或伪指令语句) ENDS
第6章 6.1.5 伪指令

ARM汇编语言伪指令

ARM汇编语言伪指令

ARM汇编语言伪指令ARM汇编语言伪指令ARM中伪指令不是真正的ARM指令或者Thumb指令,这些伪指令在汇编编译时对源程序进行汇编处理时被替换成对应的ARM或Thumb指令(序列)。

ARM伪指令包括ADR、ADRL、LDR和NOP等。

1、ADR(小范围的地址读取伪指令)该指令将基于PC的地址值或基于寄存器的地址值读取到寄存器中。

语法格式ADR{cond} register, expr其中,cond为可选的指令执行的条件register为目标寄存器expr为基于PC或者基于寄存器的地址表达式,其取值范围如下:当地址值不是字对齐时,其取值范围为-255~255.当地址值是字对齐时,其取值范围为-1020~1020当地址值是16字节对齐时,其取值范围将更大在汇编编译器处理源程序时,ADR伪指令被编译器替换成一条合适的指令。

通常,编译器用一条ADD指令或SUB指令来实现该ADR伪指令的功能。

因为ADR伪指令中的地址是基于PC或者基于寄存器的,所以ADR读取到的地址为位置无关的地址。

当ADR伪指令中的地址是基于PC时,该地址与ADR伪指令必须在同一个代码段中。

示例start MOV r0,#10 ;因为PC值为当前指令地址值加8字节ADR r4, start ;本ADR伪指令将被编译器替换成SUB r4,pc,#0xc2、ADRL(中等范围的地址读取伪指令)该指令将基于PC或基于寄存器的地址值读取到寄存器中。

ADRL伪指令比ADR伪指令可以读取更大范围的地址。

ADRL伪指令在汇编时被编译器替换成两条指令,即使一条指令可以完成该伪指令的功能。

语法格式ADRL{cond} register,expr示例start MOV r0,#10 ;因为PC值为当前指令地址值加8字节ADRL r4,start+60000 ;本ADRL伪指令将被编译器替换成下面两条指令ADD r4,pc,#0xe800ADD r4,r4,#0x2543、LDR(大范围的地址读取伪指令)LDR伪指令将一个32位的常数或者一个地址值读取到寄存器中语法格式LDR{cond} register, =[expr|label-expr]其中,expr为32位的常量。

ARM伪指令

ARM伪指令

ARM伪指令——中等范围的地址读取
ADRL伪指令将基于PC相对偏移的地址值或基于寄存器相对偏移的地 址值读取到寄存器中,比ADR伪指令可以读取更大范围的地址 。在汇编编 译器编译源程序时,ADRL伪指令被编译器替换成两条合适的指令。若不能 用两条指令实现,则产生错误,编译失败。 ADRL伪指令格式 ADRL{cond} register,expr
... ADRL ... Delay MOV ... R0,r14 R0,Delay 0x20 0x24
编译后的反汇编代码:
... ADD ADD ... 0xFF68 MOV ... r0,r14 r1,pc,#40 r1,r1,#FF00
使用伪指令将程序标号 Delay的地址存入R0
ADRL伪指令被汇编成两条指令
ARM汇编程序设计
AREA Word, CODE, READONLY ; name this block of code num EQU 20 ; Set number of words to be copied ENTRY start LDR r0, =src ; r0 = pointer to source block LDR r1, =dst ; r1 = pointer to destination block MOV r2, #num ; r2 = number of words to copy wordcopy LDR r3, [r0], #4 ; a word from the source STR r3, [r1], #4 ; store a word to the destination SUBS r2, r2, #1 ; decrement the counter BNE wordcopy ; ... copy more stop MOV r0, #0x18 ; angel_SWIreason_ReportException LDR r1, =0x20026 ; ADP_Stopped_ApplicationExit SWI 0x123456 ; ARM semihosting SWI AREA BlockData, DATA, READWRITE src DCD 1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4 dst DCD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 END ; mark the first instruction to call

《汇编语言》学习笔记6——伪指令

《汇编语言》学习笔记6——伪指令

《汇编语⾔》学习笔记6——伪指令1.伪指令⼜称伪操作,即不能像汇编指令⼀样⽣成可执⾏的⼆进制机器代码,⽽是在汇编程序对汇编语⾔源程序进⾏汇编(编译)期间,由汇编程序执⾏。

它与C中的说明性语⾔的含义类似,起到说明作⽤,⽤来指出程序分段、数据定义、存储分配、程序开始和结束等信息,这些信息在汇编(编译)完成后就不⽤了。

但程序中没伪指令,则系统就⽆法完成编译。

2.段定义伪指令:⽤来定义各种类型的段 1.格式:段名 SEGMENT [类型参数] ...... 段名 ENDS 1.其中SEGMENT和ENDS必须成对出现,表⽰段的开始和结束。

⼀般的,段名和段的意义⼀致,便于识别。

2.段名实际就是段地址,在汇编过程中,系统给出具体的地址值,⼀个段必须有⼀个名字来标识。

3.参数是可选项(可有可⽆),⽤于指出段的边界、段的组合、类别标识,⼀般⽤于多模块程序设计中。

2.类型参数 1.定位类型 PARA 该段的起始地址必须为⼩段的⾸地址,即起始地址的16进制数最低位为0 BYTE 该段可以从任意地址开始 WORD 该段必须从字边界开始,即起始地址为偶数 DWORD 该段必须从双字边界开始,即起始地址的16进制数为最低应为4的倍数 PAGE 该段必须从页边界开始,即起始地址的16进制数最低两位为00(能被256整除) 若不指定定位类型,系统默认为PARA 2.组合类型 PRIVATE 该段为私有段,连接时不与其他同名段合并 PUBLIC 连接时可与其他模块中的同名段按顺序连接成⼀个段 COMMON 表⽰该段与其他模块中的同名段有相同的起始地址,如果连接将产⽣覆盖,连接后段的长度为同名段中的最长者 STACK 表⽰该段为堆栈段 AT 表达式 该段直接定位在表达式指出的位置上 若不指定组合类型,默认为PRIVATE 3.类型标识:在引号中给出段的类型名。

在连接时,类别标识相同的段放在连续的存储区中。

(如:"STACK"⽤啦标识该段为堆栈段) 4.END:结束标记,若碰到伪指令END则停⽌编译3.ASSUME伪指令:⽤于指明段寄存器与段的对应关系 1.格式:ASSUME 段寄存器:段名,[段寄存器:段名,段寄存器:.....]【[]中标识可选项】 2.除了代码段寄存器CS不能⽤MOV指令赋值外,其他段寄存器都可⽤MOV指令进⾏初始化。

汇编常见伪指令

汇编常见伪指令

汇编常见伪指令汇编常见伪指令转⾃:⼀、与宏有关的伪指令在宏定义时,为了满⾜某种特殊需要,汇编语⾔还提供了⼏个伪指令。

9.3.1 局部标号伪指令LOCAL在宏定义体中,如果存在标号,则该标号要⽤伪指令LOCAL说明为局部标号,否则,当在源程序中,有多于⼀次引⽤该宏时,汇编程序在进⾏宏扩展后将会给出:标号重复定义的错误。

伪指令LOCAL的⼀般格式如下:LOCAL 标号1, 标号2, ……伪指令LOCAL必须是伪指令MACRO后的第⼀条语句,并且在MACRO和LOCAL之间也不允许有注释和分号标志。

汇编程序在每次进⾏宏扩展时,总是把由LOCAL说明的标号⽤⼀个唯⼀的符号(从??0000到??FFFF)来代替,从⽽避免标号重定义的错误。

例9.7 编写求⼀个求绝对值的宏。

解:⽅法1:ABSMACROword1CMPword1, 0JGEnextNEGword1next:ENDM假设对宏ABS有以下两次引⽤,点击它们将会显⽰汇编程序对它们进⾏宏扩展后所得到程序⽚段: ABS BX 1 CMP BX, 0 1 JGE next 1 NEG BX 1 next:… ABS AL 1 CMP AL, 0 1 JGE next 1 NEG AL 1 next:在上述程序⽚段中,显然标号next定义了⼆次,所以,汇编程序将显⽰“标号重复定义”的错误信息。

为了避免这种情况的发⽣,我们需要⽤下⾯的⽅法来定义该宏。

⽅法2:ABSMACROword1LOCALnextCMPword1, 0JGEnextNEGword1next:ENDM假设对宏ABS有以下两次引⽤,点击它们将会显⽰汇编程序对它们进⾏宏扩展时所得到程序⽚段: ABS BX 1 CMP BX, 0 1 JGE ??0000 1 NEG BX 1 ??0000:… ABS AL 1 CMP AL, 0 1 JGE ??0001 1 NEG AL 1 ??0001:在上述程序⽚段中,宏体内部的局部标号next分别⽤符号??0000和??0001来对应它的⼆次引⽤。

伪指令——精选推荐

伪指令——精选推荐

伪指令常⽤伪指令SPMC65 汇编伪指令与汇编指令不同,它不会被 CPU 执⾏,⽽是在汇编器对程序进⾏汇编期间实现对汇编器的控制。

使⽤伪指令可以完成分配存储区、定义宏、指导汇编器汇编指定的代码等功能,从⽽增加程序的可读性和可维护性。

SPMC65 伪指令的语法格式及分类SPMC65 伪指令可以出现在程序⽂件的任意位置,为了与汇编指令区分,建议伪指令的前⾯加上⼀个句点“ . ”,例如“ .CODE ”。

SPMC65 伪指令不必区分字母的⼤⼩写,也就是说,在 SPMC65 程序中,“ .code ”、“ .CODE ”、“ .cODe ”是等价的,建议伪指令全部⼤写。

但是利⽤伪指令定义的标号(包括段名、宏名、变量名、结构名等)则要区分其字母的⼤⼩写,例如标号“Temp ”与标号“ temp ”代表两个不同的标号。

为便于对 SPMC65 伪指令的语法进⾏描述,我们采⽤了下列符号约定:lable ——标号count ——数量value ——常量数值args ——参数[ ] ——可缺省项⽬。

如果出现[[… …]] 的形式,则表⽰可缺省项的内容本⾝就带有⽅括号。

SPMC65 伪指令依照其⽤途可分为五类:存储类、定义类、条件类、汇编链接类以及调试类。

详见表 2.86 。

表中⽤斜线“ /”隔开的伪指令是同义伪指令,它们虽然名字不同,但实现的功能是相同的。

例如“ ORG/ORGIN ”表⽰ ORG 与 ORGIN 两条伪指令可以相互替换。

表 2 . 86 伪指令分类列表下⾯将分类介绍⽐较常⽤的伪指令。

存储类伪指令1. DB[ 功能 ] 以字节型数据的形式来存储常量(定位在 ROM 区,参见 .CODE 伪指令)[ 同义伪指令 ] DEFB 、 BYTE 、 STRING [ 格式 ][label:] .DB [[count]] [value] [,[count]] [value][,…][ 说明 ] 本伪指令把⼀系列 8 位常量值存⼊连续的数据单元中。

单片机伪指令和指令详解

单片机伪指令和指令详解

ASM-51汇编伪指令一、伪指令分类1.符号定义SEGMENT, EQU, SET, DATA, IDATA, XDATA, BIT, CODE2.存储器初始化/保留DS, DB, DW, DBIT3.程序链接PUBILC, EXTRN, NAME4.汇编程序状态控制ORG, END5.选择段的伪指令RSEG, CSEG, DSEG, XSEG, ISEG, BSEG, USING二、伪指令具体说明1.符号定义伪指令1)SEGMENT伪指令格式:段名SEGMENT 段类型说明:SEGMENT 伪指令说明一个段。

段就是一块程序代码或数据存储器。

允许使用的段类型为:●CODE代码空间●DATA 可以直接寻址的内部数据空间●XDATA外部数据空间●IDATA可以间接寻址的整个内部数据空间●BIT位空间例子:(段符号用于表达式时,代表被连接段的基地址)STACK SEGMENT IDATARSEG STACKDS 10H ;保留16字节做堆栈MOV SP , #STACK-1 ;堆栈指针初始化2)EQU伪指令格式:符号名 EQU 表达式符号名 EQU 特殊汇编符号说明:EQU表示把一个数值或特殊汇编符号赋予规定的名字。

一个表达式赋予一个符号,必须是不带向前访问的表达式。

例子:N27 EQU 27;ACCUM EQU A ;定义ACCUM代替特殊汇编符号A(累加器)HERE EQU $; HERE为当前位置计数器的值3)SET伪指令格式:符号名 SET 表达式符号名 SET 特殊汇编符号说明:SET类似EQU,区别在于可以用另一个SET伪指令在以后对定义过的符号重新定义。

例子:COUNT SET 0COUNT SET COUNT+14)BIT伪指令格式:符号名 BIT 位地址说明: BIT伪指令把一个地址赋予规定的符号名。

该符号类型取段类型BIT.例子:RSEG DATA_SEG;CONTROL: DS 1ALATM BIT CONTROL.0;OPEN_BOARD BIT ALATM+1 ;下一位RESET_BOARD BIT 60H ;下一个绝对的位5)DATA伪指令格式:符号名 DATA 表达式说明:DATA伪指令把片内的数据地址赋予所规定的符号名。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
格式:ASSUME 段寄存器名:段名符[,段寄存 器名:段名符,…]
例如:ASSUME CS:MYCODE,DS:MYDATA
ASSUME ES:MYEXTRA,SS:MYSTACK
注意:ASSUME语句只能安排在代码段内,一 般应在代码段作为首始指令。允许多次使用该 语句重新约定段寄存器与段的关系。除CS外, 各个段寄存器的实际值,还要用MOV赋值
;wj1.asm .model small .stack .data
string db ’Hello, Assembly !’,0dh,0ah,’$’ .code
start: mov ax,@data mov ds,ax mov dx,offset string mov ah,9 int 21h mov ax,4c00h int 21h end start
第6章
第6章 6.1.5 伪指令
方式伪指令
.8086 .386
赋值伪指令EQU
表达式名称 EQU 表达式 新标号 EQU 老标号 例如:ABC EQU 2000H
XYZ EQU [BP+5] AAD EQU PAR_3 COUNT EQU CX 用PURGE可以撤销对原先的赋值 PURGE XYZ
第6章 6.1.5 伪指令
IF ELSE ENDIF条件汇编伪指令
格式:IF
;如果条件成立

[ELSE] ;否则

ENDIF ;结束条件汇编语句
其中IF有多种形式:
• IF 操作数、IFE 操作数、IFDEF 标号或变量、 IFNDEF 标号或变量、IFB<变量>、IFNB<变量>、 IFIDN<操作数1>,<操作数2>、IFDIF<操作数1>, <操作数2>、IF1、IF2
STUDENT_RECORD ENDS
第6章 6.1.5 伪指令
结构的存储分配和预置
格式:变量 结构名称<赋值说明> LiPing STUDENT_RECORD <,,,’891011’>
LuiYi STUDENT_RECORD <‘LuiYi’,1,,’891011’,80H>
对结构的访问
格式:变量名.字段名 例如:MOV AL,LiPing.AGE 等价于: MOV AL,[BX].AGE
第6章 6.1.5 伪指令
定义变量伪指令
DB、DW、DD、DF、DQ、DT
定义存储单元类型的伪指令
BYTE、WORD、DWORD 此指令要和其他指令结合起来使用
LABEL
用于定义标号名称和属性,它和下一条指令共享存储 器单元 格式:名字 LABEL 类型 例如:BYTE-ARRAY LABEL BYTE
第6章: 汇编语言程序的开发过程-补充
文本编辑器,如
编 辑
错误
源程序:文件名.asm

汇编程序,如 MASM.EXE

错误
目标模块:文件名.obj

连接程序,如 LINK.EXE

错误
可执行文件:文件名.exe
调试程序,如 DEBUG.EXE
调 试
应用程序
错误
开发过程1:源程序的编辑
注意:当定义除代码段以外其他段时,段 内不能包括指令语句
段名:所定义段名称,前后要一致,要有 一定的意义 定位类型:给出实际段起点类型
有PAGE、PARA、WORD、BYTE四种 PAGE表示相应段必须从某一页的边界开始, 即段的起始地址能为256整除 PAGE=XXXX XXXX XXXX 0000 0000B
第6章 6.1.5 伪指令
MYCODE SEGMENT ASSUME CS:MYCODE,DS:MYDATA ASSUME ES:MYEXTRA,SS:MYSTACK
START: MOV AX,MYDATA MOV DS,AX MOV AX,MYEXTRA MOV ES,AX MOV AX,MYSTACK MOV SS,AX :
MASM 提供的汇编程序是MASM.EXE:
MASM wj1.asm 如果源程序中没有语法错误,MASM将自 动生成一个目标模块文件(wj1.obj);否 则MASM将给出相应的错误信息。这时应 根据错误信息,重新编辑修改源程序后, 再进行汇编
开发过程2:源程序的汇编(生成列表文件)
汇编过程中,可以通过参数选择生成列表文 件(.LST)。列表文件是一种文本文件,含 有源程序和目标代码,对我们学习汇编语言 程序设计和发现错误很有用 汇编程序MASM.EXE可带其他参数,为了 生成列表文件,各自的命令是:
;主程序 ADITI: AAA1
LOOP ADITI MOV AL,0 ADC AL,AL
STOSB
第6章 6.1.5 伪指令
定义结构的伪指令STRUC/ENDS
格式:结构名称 STRUC
(由DB、DW、DD伪指令组成的语句序列)
结构名称 ENDS
STUDENT_RECORD STRUC NAME DB ‘LiPing’ SEX DB 0 AGE DB 25H NUMBER DB ‘????’ MATH DB 91 PHYSICAL DB 85 CIRCUIT DB 95
第6章 6.1.5 伪指令
PARA表示相应段必须从某一个节(等于16个 字节)的边界开始,即段的起始地址能为16整 除
PARA=XXXX XXXX XXXX XXXX 0000B WORD表示相应段必须从任一个字的边界开始, 即段的起始地址能为2整除
WORD=XXXX XXXX XXXX XXXX XXX0B BYTE表示相应段可以从任一地址开始
DATA SEGMENT ORG 20H X DB 35,64 :
DATA ENDS CODE SEGMENT
ORG 100H MOV AL,X : ADD AX,BX ORG $+3 ADD AL,5 :
CODE ENDS
第6章 6.1.5 伪指令
ASSUME伪指令
功能:用来告诉汇编程序在指令执行期间内存 的哪一段是数据段,哪一段是堆栈段,哪一段 是代码段
第6章:例: 在屏幕上显示一段信息
string
;数据段(定义要显示的字符串) db’Hello, Assembly !’,0dh,0ah,’$’ ;代码段(显示字符串的程序) mov dx,offset string mov ah,9 int 21h
Hello, Assembly !
程序功能
第6章:源程序文件wj1.asm
WORD-ARRAY DW 100 DUP(?) 两种访问方式:MOV WORD-ARRAY,0
MOV BYTE-ARRAY,0
第6章 6.1.5 伪指令
SEG和OFFSET
SEG返回存储器地址操作数的段地址 OFFSET返回存储器地址操作数的段内偏移地 址部分

NUMBER-1 DD ? CCAA EQU SEG NUMBER-1 : MOV AX,SEG NUMBER-1 MOV DS,AX MOV SI,OFFSET NUMBER-1
SEGMENT DW 7654H DW 2345H DW ? ENDS
;代码段定义
CODE_SEG START:
CODE_SEG
SEGMENT
ASSUME CS:CODE_SEG,DS:DATA_SEG MOV AX,DATA_SEG MOV DS,DATA_SEG MOV AX,VAR1 SUB AX,VAR2 MOV RESULT,AX
;小型模式存储模式 ; 1KB空间堆栈段 ;数据段 ;数据定义 ;代码段 ;起始点 ;设置DS ;程序代码
;结束点,返回DOS ;子程序代码 ;汇编结束
第6章: 完整段定义格式
完整段定义利用SEGMENT和ENDS一对伪 指令定义逻辑段 同 时 需 要 配 合 ASSUME 伪 指 令 指 明 逻 辑 段 是代码段、堆栈段、数据段还是附加段 完整段定义的优势是可以指明逻辑段的定位、 组合、类别等属性;而简化段定义只能采用 系统默认的属性 完整段定义和简化段定义的实质是一致的
解决任一模块引用其他模块中的变量和标号问 题 内部标识符、外部标识符 每个模块要有两个清单,一个标明他所要访问 的其他模块的标识符;另一个列出他所定义的, 且为其他模块所访问的标识符 使用伪指令EXTRN、PUBLIC
第6章 6.1.5 伪指令
EXTRN格式
• EXTRN 标识符:类型,…,标识符:类型 • EXTRN VAR1:WORD
MYCODE ENDS
第6章 6.1.5 伪指令
过程定义伪指令PROC、ENDP、NEAR、 FAR
过程的含义与子程序相同,最后一跳语句总是 返回指令 PROC/ENDP总是成对出现 NEAR可以省略,默认为NEAR P173例题
例题
;过程
AAA1 PROC NEAR
LOADSB
ADC AL,[BX] DAA STOSB INC BX RET AAA1 ENDP
第6章 6.1.5 伪指令
TYPE、SIZE、LENGTH
见表6.3
段定义伪指令
SEGMENT/ENDS伪指令 成对使用,说明段的名称和范围,还可指明段 的定位类型、组合类型、分类名
段名 SEGMENT [定位类型][组合类型][分类名] : 本段程序内容(指令或伪指令语句)
段名 ENDS
第6章 6.1.5 伪指令
源程序文件要以ASM为扩展名 源程序文件的形成(编辑)可以通过任何 一个文本编辑器实现:
DOS中的全屏幕文本编辑器EDIT 其他程序开发工具中的编辑环境 Windows中的记事本Notepad
EDIT wj1.asm
开发过程2:源程序的汇编(TASM)
相关文档
最新文档