汇编-----代码分段

8086 伪指令

assume cs : code
code segment
db 1,2,3,4,5,6,7,8,9  ; 这里创建的字节就存放在code段中, 类似于高级语言中的全局变量, 在整个代码段中都可以拿到
dw 'hello'
dw "word" ; 在汇编中 ''与""含义相同

; 退出程序
mov ah, 4cH
int 21H
code ends
end

  • db(define byte) 自定义一个字节
  • dw(define word) 自定义一个字(2byte)
  • assume 告诉编译器 这个segment是什么段
    • 不过上述代码的问题在于, 既然是代码段, 那么CPU会将里面所有的数据当做指令去处理, 所以ip的初始值是0000H.
  • 那么怎么去让CPU从dw后边去执行呢?
assume cs : code
code segment
db 1,2  ; 这里创建的字节就存放在code段中, 类似于高级语言中的全局变量, 在整个代码段中都可以拿到
dw 'hello'
dw "word" ; 在汇编中 ''与""含义相同
db 20 dup(0) ; 定义20个字节的内存空间, 里面全部存放0
start:
mov al, cs:[0]
mov ah, 0

; 退出程序
mov ah, 4cH
int 21H
code ends
end  start ; start 告诉编译器, 真正的代码段从start开始执行, 也就是ip为000bH
  • db 20 dup(0): 定义20(N)个字节的内存空间, 里面全部存放0(00H)
assume cs:code, ds:data, ss:stack
stack segment
        db 20 dup(1) ; 定义20个字节作为栈段
stack ends

data segment
        db 20 dup(2)
        age dw 20H ; 定义两个字节 存放0020H age为标号 标号中存放着地址
data ends
code segment
start:
      mov ax, 1122H
      mov age, ax ; 将ax放入age标号所记录的地址中 相当于mov [20], ax
code end
end start
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 8086汇编 本笔记是笔者观看小甲鱼老师(鱼C论坛)《零基础入门学习汇编语言》系列视频的笔记,在此感谢他和像他一样...
    Gibbs基阅读 37,427评论 8 114
  • # 常见汇编代码 # 1. 编写程序:比较AX,BX,CX中带符号数的大小,将最大的数放在AX中 code...
    喝豆腐脑加糖阅读 2,696评论 0 0
  • 汇编总结 汇编的发展史 机械语言 由0和1组成的机器指令(如:0101 0001 1101 0110) 汇编语言(...
    iChuck阅读 1,339评论 1 8
  • 汇编指令 汇编代码,高级语言-》汇编代码-》二进制-》计算机执行 高级语言只能转换成一种汇编代码,汇编代码可能转换...
    幻影快快跑阅读 338评论 1 3
  • 编程语言的发展 机器语言由0和1组成 汇编语言(Assembly Language)用符号代替了0和1,比机器语言...
    阿凡提说AI阅读 4,256评论 0 15