16位汇编学习记录总结(3)

第二十一节

地址表达式

变址寻址:

MOV AX,VARW+4       等价于

MOV AX,VARW[4]

基址加变址寻址方式:

VARW[BX][DI]

[VARW+BX+DI]

VARW[BX+DI]    均等价

 

1,变量和标号的属性

 

都代表存储单元。

变量表示存储单元中存放数值

标号表示存储单元中存放的是机器指令代码

都具有如下三种属性

1)段值

2)偏移

3)类型  DB,DW,DD  NEAR,FAR

 

数据定义语句

VARB DB 3

WARW DW -1234

BUFF DB 1003+45*6

1)定义字节数据项

COUNT DB 100

DB 0DH,0AH,'$'

TABLE DB 014916

2)定义字数据项

FLAG DW 2FCDH,100-1

VECT DW 0

DW 100

3)定义双字节数据项

VECTOR DD 4

FARPTR DD 12345678H,0

4)定义没有初值的数据项

BUFF DB 5?,?

5)定义字符串

MESS1 DB 'HELLO!'

MESS1 DB 'H','E','L','L','O','!'     和上面相同

 

MESS DB 'AB'

MESS DW 'AB' 两个存储不一样  41H42H    第二个:42H41H

6)第一其他类型数据项

DT 0 定义十个字节

DQ ? 定义八个字节

 

重复操作符DUP

有时需要定义数组,有时还需要定义数据缓冲区

BUFFER DB 8DUP(0) 重复8

BUFFER1 DB 00000000

COUNT:重复次数 DUP (表达式)

可以嵌套使用

 

第二十二节

 

2,析值操作符也称数值回送操作符

SEG 变量名或标号(返回段值)

TYPE 变量名或标号(返回类型)

SIZE 变量名

OFFSET 变量名或标号

LENGTH 变量名

 

VARW DW 1234H,5678H

VARB DB 34

MOV AX,SEG VARW

MOV DS,AX

MOV BX,OFFSET VARW+2

 

操作符TYPE返回变量或标号的类型,类型用数值表示,常见类型

字节变量 1 字变量 2

双字变量 4 近(NEAR -1

远(FAR -2

ADD SI,TYPE VARW

 

操作符LENGTH返回利用DUP定义的数组中元素的个数

如果没有使用DUP,则返回1

嵌套使用DUP,则只返回最外层的重复数

MOV CX,LENGTH VARW

 

操作符SIZE返回用DUP定义的数组占用的字节数

SIZE 变量 LENGTH变量)*TYPE变量)

 

3,属性操作符

 

操作符PTR

MOV [SI],1

MOV WORD PTR [SI],1 ;送字类型的0001H

MOV BYTE PTR [SI],1 ;送字节类型01H

 

BYTE WORD DWORD NEAR FAR

 

JMP FAR PTR OK ;OK是标号

JMP DWORD PTR OLDVECT;OLDVECT 是变量

 

---------------------------------------------------------------------------------

varw dw 34h

 

mov cx,size varw

 

da1 db 32 dup(2,3,10 dup(4),7)

 

da2 dw 'ts','du','ne','st'

da2 dw 'students'

 

 

 

 

 

第二十三节

 

1,常用伪指令语句和源程序组织

 

1)符号定义语句

等价语句 EQU

符号名 EQU 表达式

COUNT EQU 100

MOVE EQU MOV

COUNT EQU CX ;COUNT相当于CX

符号名不能重新定义。只能定义一次

 

2)等号语句

XX=10

ABCD=1

可重复定义

 

3)定义符号名语句

符号名 LABEL 类型

相当于指针 

BUFFER LABEL WORD

BUFF DB 100 DUP(0)

 

QUIT LABEL FAR

EXIT: MOV AH,4CH

QUIT 和 EXIT都可以作为 MOV的标号

4)段定义语句

缓冲 放到附加段

段开始和结束语句

段名  SEGMENT [定位类型][组合类型][‘类型’]

。。。。。

段名 ENDS

 

数据段 DSEG

代码段 CSEG

CSEG SEGMENT

MOV AX,DSEG

MOV DS,AX

MOV DX,OFFSET MESS

CSEG ENDS

 

2,段使用设定语句

ASSUME 段寄存器名

 

dseg1 segment

varw dw 12

dseg1 ends

dseg2 segment

xxx dw 0

yyy dw 0

dseg2 ends

cseg segment

assume cs:cseg,ds:dseg1,es:dseg2

mov ax,dseg1

mov ds,ax

mov ax,dseg2

mov es,ax

mov ax,varw

mov es:xxx,ax

assume ds:dseg2,es:nothing

mov ax,dseg2

mov ds,ax

mov ax,xxx

mov yyy,ax

cseg ends

 

3ORG语句

ORG 数值表达式 设置执行地址为数值表达式

$ 地址计数器当前值

ORG $+8 跳过八个字节执行

ARRAY DW 12,$,$+1$+4$+4  ;后两个值不一样,都是当前地址+4

转载于:https://www.cnblogs.com/lvghost/archive/2012/12/19/2824489.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值