跳转至

1 章 背景知识⚓︎

330 个字 18 行代码 预计阅读时间 2 分钟

  • 汇编语言是对机器语言的符号化
  • 汇编语言与 CPU 和操作系统密切相关
    • 现代操作系统对操作系统和用户程序的权限做了严格区分,因此无法执行特权命令;而 DOS 系统没有这种限制,故课上介绍的是古老的 DOS 系统下的 80x86 汇编语言
  • 特点:
    • 控制强:
      • 最接近机器语言,因此更容易控制硬件
      • 汇编语言的“材料”——指令与中断调用相对高级语言的“材料”(语句与函数调用)小,因此用汇编语言可以写出高级语言无法实现的程序
    • 代码短:用汇编语言写的程序经编译后生成的可执行代码比高级语言的要短
    • 速度快
  • 应用:编写操作系统、设备驱动程序、编译器、调试器等,还用于反病毒、软件加密(磁盘、加密锁(“软件狗”(dongle)、序列号等、逆向工程等领域

第一个汇编语言程序

hello.asm
data segment
s db "Hello, world!", 0Dh, 0Ah, '$'
data ends

code segment
assume cs:code, ds:data
main:
    mov ax, data
    mov ds, ax
    mov ah, 9
    mov dx, offset s
    mov ah, 4Ch
    int 21h
code ends
end main

编译 & 运行的步骤(假设已经在 D 盘安装了 MASM(小白老师的主页上有

  • hello.asm放在目录D:\masm中,打开 dos 终端并切换至该目录下
  • 执行以下命令
masm hello;  # 编译
link hello;  # 链接(注意前两个语句末尾都要带分号)
hello        # 运行(.exe文件可以直接输入文件名运行)

运行结果:

评论区

如果大家有什么问题或想法,欢迎在下方留言~