汇编语言数据类型

Posted by hello vbnmjj on January 8, 2024

字节类型

db 100 ;define byte db 11000000b db 0b10101111

定义一个字

dw 0xaa55 ;define word

定义双字节

dd 0x12345678 ;define doubleword

定字符串

db “helloworld”

定义一个段

segment ends 是一对成对使用的伪指令,一个段必须有一个名称来标识

xxx segment
    ...
xxx ends

一个汇编程序由多个段组成,用来存放代码,数据,或者当作栈空间使用。 end伪指令就真正结束了对源程序的编译,这也是必须的。

assume ,寄存器和段的关联假设,如图就假定代码段寄存器是codesg

汇编源程序

    伪指令:编译器处理
    汇编指令: 编译为机器码

下面看一下源程序和可执行程序

标号

一个标号指代了一个地址 codesg: 放在segment的前面,作为一个段的名称,这个段的名称最终将被编译、连接程序处理为一个段的段地址。

assume cs:abc  ;段和寄存器关联
abc segment    ;定义一个段
mov ax ,2
add ax ,ax
abc ends       ;结果一个段
end            ;程序结束

程序返回

我们的程序最先以汇编指令的形式存在源程序中,经编译、连接后转变为机器码,存储在可执行文件中,那么,它怎样得到运行呢?(讨论)

现在,我们知道,一个程序结束后,将CPU的控制权交还给使它得以运行的程序,我们称这个过程为 : 程序返回。

如何返回呢?

下面这两条指令即可
mov ax 4c00h
int 21h