博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第6章
阅读量:6857 次
发布时间:2019-06-26

本文共 1257 字,大约阅读时间需要 4 分钟。

6.1~6.2

程序6.3

assume cs:code

code segment

  dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h   ---------用dw定义的数据,偏移地址为0,2,4,6,8,a,c, e;由于它们在代码段中,段地址在CS。

  dw 0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ————用dw定义了16个字型数据,程序加载后取得16个字的内存空间存放这16个数据,在后面的程序中将这段空间当栈空间使用

(数据data)

start:   —————程序入口

  mov ax,cs  ————第一个指令

  mov ss,ax

  mov sp30h           (栈顶ss:sp指向cs:30)

 

  mov bx,0

  mov,cx,8

s:    push cs:[bx]

  add bx,2

  loop s      (将0~15单元的八个字型数据依次入栈)

 

    mov bx,0

  mov,cx,8

s0:    pop cs:[bx]

  add bx,2

  loop s0      (依次出栈到代码段的0~15单元中)

 

  mov ax,4c00h

  int 21h

code ends

end start

6.3

程序6..4

assume cs:code,ds:data,ss:stack   定义多个段:“code”,“data”,“stack”为段名(可随意取名,a,b,c都行)

 

data segment

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

data ends

 

stack segment

dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0    stack段

stack ends

 

code segment       code段

start:(可以改名,比如D:则最后end D)

mov ax,stack     意为将名称为“stack”的段的段地址送入ax,。

mov ss,ax

mov sp,20h  ss:sp即栈顶指向stack:20(20-2=1d,.........)

 

mov ax,data

mov ds,ax

mov bx,0    ds:bx指向data段的第一个单元

 

  mov cx,8

s:  push [bx]   

  add bx,2

  loop s    将data段0~15单元的8个字型数据入栈

 

  mov cx,8

s0:  pop [bx]   

  add bx,2

  loop s0  依次出栈到data段的0~15单元

mov ax,4c00h

int 21h

code ends

end start

 (cpu真正执行的是start~end start之间的代码)

 

转载于:https://www.cnblogs.com/101whw/p/10016875.html

你可能感兴趣的文章
ActiveMq 总结(一)
查看>>
XJOI网上同步测试DAY14 T2
查看>>
在SGD中发布Oracle Linux 7 的Xfce桌面环境
查看>>
使用DD_belatedPNG让IE6支持PNG透明图片
查看>>
LOJ6284 数列分块入门8(分块)
查看>>
深入浅出Mybatis系列(二)---配置简介(mybatis源码篇)
查看>>
delphi中 panel如何在Form实现鼠标移动拖放
查看>>
天天爱跑步——树上差分
查看>>
Instll meld in windows
查看>>
一些量化策略评估指标
查看>>
Text selection in div(contenteditable) when double click
查看>>
K3卸载和清理
查看>>
开源库
查看>>
CPU线程 和 Java线程
查看>>
ClassLoader
查看>>
springboot gradle项目搭建随记
查看>>
day23——删除数据、更改数据、索引
查看>>
ABP官方文档翻译 6.1.2 MVC视图
查看>>
js-监听页面滚动
查看>>
半小时精通PHP正则表达式
查看>>