image.png
    一、在代码段中使用数据:

    1. assume cs:codesg
    2. codesg segment
    3. dw 0123H,0456H,0789H,0abcH,0defH,0fedH,0cbaH,0987H
    4. mov bx,0
    5. mov ax,0
    6. mov cx,8
    7. s:add ax,cs:[bx]
    8. add bx,2
    9. loop s
    10. mov ax,4c00H
    11. int 21H
    12. codesg ends
    13. end

    dw:定义字型数据
    在这里,我们使用dw定义了8个字形数据,数据之间以逗号分隔,它们所占的内存空间大小为16个字节

    二、在代码段中使用栈:

    1. assume cs:code,ds:data,ss:stack
    2. ;==========数据段==============
    3. data segment
    4. dw 0123H,0456H,0789H,0abcH,0defH,0ccbaH,0987H
    5. data ends
    6. ;==========代码段==============
    7. stack segment
    8. dw 0,0,0,0,0,0,0,0
    9. stack ends
    10. ;=============================
    11. code segment
    12. start:mov ax,stack
    13. mov ss,ax
    14. mov sp,16 ;设置栈顶ss:sp指向stack:16
    15. mov ax,data
    16. mov ds,ax ;ds指向data
    17. mov bx,0 ;ds:bx指向data段中第一个单元
    18. mov cx,8
    19. s:push [bx]
    20. add bx,2
    21. loop s ;以上将data段中的0~16单元中的8个字型数据依次入栈
    22. mov bx,0
    23. mov bx,8
    24. s0:pop [bx]
    25. add bx,2
    26. loop s0 ;以上使8个字型数据依次出栈并送到data段的0~16单元中
    27. mov ax,4c00H
    28. int 21H
    29. code ends
    30. end start