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汇编学习之代码段、数据段、栈段与段地址寄存器

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

16位和32位代码段的区别

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

关于16位和32位代码段

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

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

16位代码段与32位代码段的区别: 16位代码段与32位代码段的区别如下: 16位代码段最长只能为64k,段内偏移量为16位,默认的指令地址及操作地址为16位;  32位代码段最长可以4G,...

基础备忘之c++内存分布:代码段、全局数据区、栈、堆

声明两点: (1)开发测试环境为VS2010+WindowsXP32位; (2)内存布局指的是虚拟内存地址,不是物理地址。 1.测试代码 #include ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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