汇编语言-汇编语言程序格式

上机过程

  1. 编辑汇编源程序:test.asm
  2. 编译:masm test
  3. 链接:link test
  4. 调试:debug test.exe
  5. 运行:test

汇编源程序组成

  • 指令
  • 伪操作
  • 宏指令

段定义、assume、字符串定义

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
data segment
buffer dw "HELLO"
buffer db "HELLO"
data ends

code segment
main proc far
assume ds:data,cs:code
push ds
mov ax,0
push ax

mov ax,data
mov ds,ax

...

ret
main endp
code ends
end main

LABEL、DUP

同一块内存可以具有不同的类型属性。

1
2
BYTE_ARRAY LABEL BYTE
WORD_ARRAY DW 50 DUP(?)

EQU、=

表达式赋值伪操作,给表达式赋一个名字,这个名字不占用内存,不允许重复定义

=也是赋值,但允许重复定义。

地址计数器$

当前正在汇编指令的偏移地址

ORG

设置当前地址计数器的值

数值回送操作符

TYPE

以字节数表示的类型

表达式是变量时

  • DB:1
  • DW:2
  • DD:4
  • DF:6

表达式是标号时

  • NEAR:-1
  • FAR:-2

表达式为常数时

  • 0

LENGTH

使用DUP时,回送该变量的单元数

其他情况,回送1

SIZE

回送分配给该变量的字节数,SIZE=LENGTH*TYPE

OFFSET

回送变量或标号的偏移地址

SEG

回送变量或标号的段地址


作者:@臭咸鱼

转载请注明出处:https://chouxianyu.github.io

欢迎讨论和交流!