您的位置:逆风者 汇编技术 正文
原作者:www.upwinder.com 添加时间:2007-09-01 原文发表:2007-08-31 人气:22 来源:未知

本文章共2171字,分2页,当前第1页,快速翻页:
 

  计算机汇编语言的一个突出优点就是利用符号(Symbol)来代替目标码,也即大量的二进制代码用符号来表示,使汇编语言源程序容易理解,便于记忆。

逆@风@者

  在宏汇编语言中所有变量名、标号名、记录名、指令助记符和寄存器名等统称符号.这些符号可通过汇编控制语句的伪操作命令重新命名,也可以通过指令给它定义其它名字及新的类型属性,因而给程序设计带来很大的灵活性.符号是程序员在程序中用来代表某个存储单元、数据、表达式和名字等所定义的标识符,可分为寄存器、标号、变量、数字、名字五类.

汇编语句形式:
START: ADD AX,BUFFER
DATA SEGMENT
  BUFFER DB 01H, 02H
DATA  ENDS
      JMP START其中START,BUFFER,DATA均为符号,它们分别表示标号,变量名,段名,它们具有完全不同的特定含意.

  标号
标号(LABEL)是为一组机器指令所起的名字.标号可有可无,只有当需要用符号地址来访问该语句时,才给此语句赋予标号.标号是程序的目标标志,总是和某地址相联系,供转移或循环指令控制转移使用.

2 1 标号的属性

  因标号表示的是指令地址,所以它有三个属性,即段属性、偏移属性和类型属性.段属性即段地址,标号的段必须在CS中.偏移属性是表示该标号到段首地址的距离,单位是字节,是16位无符号整数.类型属性是距离属性,指标号和转移指令的距离,该标号在本段内引用,距离在-128~ 127之间时称短标号,距离属性为SHORT,当标号在本段,距离在-32768~ 32767之间时称近标号,距离属性为NEAT,当引用标号的指令和标号不在同一段时称远标号,距离属性为FAR.

2 2 标号的定义

  标号的定义有三种方法:
2 2 1 隐含说明标号距离属性为SHORT和NEAR的标号可以使用隐含说明,即在代码段中定义,标识符后加冒号,放在一条汇编指令的操作符前面.例:
NEXT: MOV  AX,BX
     ----------     
LOOP NEXT
   - - - - - - - - -      
NEXT1: CMP  AX,BX
      JA  NEXT1 
其中NEXT和NEXT1都是标号名.
2 2 2 用LABEL定义标号
对于属性为NEAR和FAR的标号均可以用这种定义.格式是:
标号名 LABEL   NEAR/FAR
例如:NEXT LABEL NEAR/FAR    
        - - - - - - - - -         
LOOP   NEXT
2 2 3 用EQU定义标号
对于属性为NEAR和FAR的标号也可用EQU定义.格式是:
标号名 EQU THIS NEAT/FAR
例如:
NEXT EQU THIS NEAR 
     - - - - - - - - -            
  LOOP  NEXT
2 3 标号的使用
2 3 1 无条件转移指令中标号作为转移地址
格式:
JMP   标号
其中标号可以是短标号,近标号或远标号
. 2 3 2 循环指令中,标号作为转移地址
格式:LOOP   标号
其中标号只能是短标号
2 3 3 条件转移中标号作为转移地址
格式:
条件转移指令   标号
其中标号只能用短标号
2 3 4 属性分离符
2 .3. 4. 1 取段地址算符SEG
例如:MOV AX,SEG NEXT
SEG NEXT 就是取标号NEXT所在段的段地址.
2 3 4 2 取偏移量算符OFFSET
例如:MOV BX, OFFSET NEX
其中OFFSET NEXT就是取标号NEXT的有效地址,该语句等效于:LEA BX, NEXT
2 3 4 3 取类型算符TYPE
例如:
MOV AX, TYPE NEXT
若NEXT为近标号,则TYPE NEXT值为FFFFH(-1),若NEXT为远标号TYPE NEXT值为FFFEH(-2).其中-1和-2无真正的物理意义,仅以数值表示标号类型而已.

变量

  变量(Variable)代表存放在某些存储单元的数据,这些数据在程序运行期间可以随时被修改.变量是通过变量名在程序中引用,变量名实际上是存储区中一个数据区的名字,以变量名数据的方式供程序员使用,作为指令或伪.指令的操作数,大大方便了程序设计者.由于变量是在逻辑段中定义.这就决定了变量和标号一样具有段属性、偏移属性和类型属性,前两个和标号的属性相同,而类型
 

本文章更多内容1 - 2 - 下一页>>
相关文章

汇编指令与机器码的相互转换
Windows下程序的反汇编
程式语言效率分析(2)
SHELL 排序测试
进程
用汇编语言实现RESET启动和热启动
WINDOWS钩子函数
控制寄存器和系统地址寄存器
矛与盾的较量——CRC实践篇
举例说明在汇编语言中, [] 的用法
PE文件结构剖析
键盘输入码表
子窗口控件
WIN98SE硬盘主引导记录代码数据注释
分页管理机制
多线程编程
动态库的执行时间
图形显示方式屏幕的保存和恢复
虚拟8086模式的内存管理
WIN98SE硬盘主引导记录代码反汇编分析

相关评论


本文章所属分类:首页 汇编技术

  热门关键字:
进制数据输出的通用程序 2007-09-12
汇编源码--showmem 2007-08-31
汇编源码--CLEAN 2007-08-31
汇编源码--hdr 2007-08-31
汇编源码--basload 2007-08-31
汇编源码--CHAR 2007-08-31
汇编源码--fxn 2007-08-31
汇编源码--alarm 2007-08-31
汇编源码--getsect 2007-08-31
汇编源码--DEV 2007-08-31
汇编源码--getspace 2007-08-31
汇编源码--frespace 2007-08-31
CIH文件型病毒检测消除程序 2007-08-31
Mixer Volume Ctrler V1.0 2007-08-31
汇编源码--COMINT 2007-08-31
自己用汇编语言写的一个病毒(源码... 2007-08-31
汇编源码--col 2007-08-31
汇编源码--BURNOUT 2007-08-31