16位汇编 数据段 栈段 代码段

原创 2016年08月30日 11:37:24
使用数据段,栈段,代码段 实现置换功能
0123  0456  0789  0abc  0def  0fed    0cba  0987

0987  0cba  0fed   0def   0abc  0789  0456  0123

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 [bx]     ;出栈
	  add bx,2
	  loop s0

        mov ax,4c00h  
	int 21
code ends

end start


版权声明:本文为博主原创文章,未经博主允许不得转载。

8086汇编基础 如何将一个段设置为代码段,数据段,栈段

慈心积善融学习,技术愿为有情学。善心速造多好事,前人栽树后乘凉。我今于此写经验,愿见文者得启发。 数据段:DS指向 代码段:CS指向 栈段     :  SS指向 类...

8086汇编学习之代码段、数据段、栈段与段地址寄存器

同类学习笔记总结: (一)、8086汇编学习之基础知识、通用寄存器、CS/IP寄存器与Debug的使用 (二)、8086汇编学习之DS寄存器、SS/SP寄存器 (三)、8086汇编学习之[B...

[Intel汇编-MASM]数据定义与分段程序

1. 使用db、dw、dd以及dup伪指令定义一段连续的数据空间:     1) 对于前三个伪指令,前缀d表示define,而后面的三个字母分别表示byte、word、double word的意思,...

汇编语言-多个段的程序

汇编语言-多个段的程序

16位和32位代码段的区别

转自:http://hi.baidu.com/guanxinsui/blog/item/bf9cc5abe3a0d81b4b36d6b5.html 16位和32位代码段的区别 2011-01-...

汇编学习-在代码段使用数据以及多段的使用

shl和shr是逻辑移位指令。shl是逻辑左移指令,它的功能为:(1)将一个寄存器或内存单元中的数据向左移位;(2)将最后移出的一位写入CF中;(3)最低位用0补充。 指令:mov al,010010...
  • dasgk
  • dasgk
  • 2013年08月31日 15:39
  • 1014

关于16位和32位代码段

转自: http://hi.baidu.com/phps/blog/item/48a2a83487ab1eb3d1a2d371.html 在调试一段保护模式代码,搞了大半天发现原来是在切...

SS段、数据段、代码段、堆与栈

  • 2012年06月14日 22:22
  • 112KB
  • 下载

32位代码段和16位代码段切换的实例

实例功能是:以十六进制数和ASCII字符两种形式显示从内存地址100000H开始的16个字节的内容。  从功能上看,本实例类似于上个实例,但在实现方法上却有了改变,它更能反映出实模式和保护模式切换的...

16位代码段与32位代码段的区别

16位代码段与32位代码段的区别: 16位代码段与32位代码段的区别如下: 16位代码段最长只能为64k,段内偏移量为16位,默认的指令地址及操作地址为16位;  32位代码段最长可以4G,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:16位汇编 数据段 栈段 代码段
举报原因:
原因补充:

(最多只允许输入30个字)