微机原理与接口技术,mooc,老师:戴胜华 第四章(伪指令)

4.2.1

变量 三重属性:1.段属性(SEGMENT)  2.偏移地址属性(OFFSET)   3.类型属性(TYPE)

例:

DATA SEGMENT
    FIRST DB 5AH
    SECOND DW 1122H
DATA ENDS

对变量的操作:
LEA AX,FIRST
MOV AX,SECOND
MOV AX,FIRST[DI]

标号:给指令起的名字,例:循环loop,next

 

4.3.1

伪指令:

变量名:DB(字节)/DW(字)/DD(双字)/DF(长字)/DQ(四字)/DT(十字节)

为变量分配xx的储存单元,并赋值。

4.3.2

1.变量名类似指针指向内容的第一个储存单位,对于数组来说其之后的[1]就像偏移量。

2.    FIRST DB ?   用来表示预留空间。

3.     A1 DB 00H 01H 02H 03H   表示数组

         MOV AL A1[0] ; (AL)=00H

4.     N  DUP(表达式)

TAB1 DB 10 DUP (0)   ;十个0,十个字节

TAB3 DW 4 DUP(1,5 DUP(0)) ;占用(5*1+4)*4*2=72个字节

4.3.3

1.等值语句  :符号  EQU  表达式

功能:将表达式赋值给符号,符号不能重复。对于=赋值语句可以重复。

2.段定义指令:SEGMENT / ENDS

  1. 代码段
  2. 数据段
  3. 堆栈段
  4. 附加段

段名  SEGMENT [定位类型],[组合类型],[字长选择],[类别]

         组合类型中的STACK 通常要写,不写也有别的办法三行代码

3.段分配语句:(ASSUME)

只起到分配作用,无装入作用(转到下一页)

       1.  DS,ES,FS,GS 的装入  MOV AX, DATA      MOV DS,AX   (段基址不能直接装入,需先送入通用寄存器,再传送给段寄存器)

       2.SS,SP 的装入:两种情况:1.写了STACK参数项且在ASSUME中分配给SS,则自动装入。

                                                      2.未使用:STACK 

4.3.4

全段指令:数据段和附加段的存放

             

段结束CODE ENDS,整体结束END START

 

4.3.5

1.LABEL 用于给以定义的变量起一个别名。

2. 定位伪指令:ORG 表达式(定义最一开始的偏移地址)AT 表达式(段地址)

用$表示当前偏移地址通常用$ - ST[0]表示里面多少个字节。

 

 

 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值