6.《汇编语言》-王爽第三版学习笔记 包含多个段的程序

1.代码段中使用数据

assume cs:code
code segment

    dw 0123h,0456h,0789h,01bch,0defh,0fedh,0cbah,0987h

    mov bx,0
    mov ax,0

    mov cx,8
s:  add ax,cs:[bx]
    add bx,2
    loop s

    mov ax,4c00h
    int 21h

code ends
end
  • 程序框架
assume cs:code
code segment
             :
          数据
             :
start:  
             :
          代码
             :
code ends
end start
  1. 在代码中使用栈
  • 将定义的数据逆序存放
assume cs:code
code segment

    dw 0123h,0456h,0789h,01bch,0defh,0fedh,0cbah,0987h
    dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

start: mov ax,cs
       mov ss,ax
       mov sp,30h

       mov bx,0
       mov cx,8
    s: push cs:[bx]
       add bx,2
       loop s

       mov bx,0
       mov cx,8
   s0: pop cs:[bx]
       add bx,2
       loop s0

       mov ax,4c00h
       int 21h
code ends
end start
assume cs:code,ds:data,ss:stack

data segment
    dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
data ends

stack segment
    dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
stack ends

code segment
start:  mov ax,stack
        mov ss,ax
        mov sp,20h

        mov ax,data
        mov ds,ax

        mov bx,0
        mov cx,8
    s:  push [bx]
        add bx,2
        loop s

        mov bx,0
        mov cx,8
   s0:  pop ds:[bx]
        add bx,2
        loop s0

        mov ax,4c00h
        int 21h

code ends

end start

你可能感兴趣的:(6.《汇编语言》-王爽第三版学习笔记 包含多个段的程序)