16位汇编 在代码段中使用栈

原创 2016年08月29日 21:15:52

在代码段中使用栈, 置换
0123  0456  0789  0abc  0def  0fed    0cba  0987
0987  0cba  0fed   0def   0abc  0789  0456  0123

assume cs:codesg

codesg segment
	
	dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
	dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0  ;定义16个空数据用于存放数据, 当作栈来使用

	start:

	mov ax,cs
	mov ss,ax
	mov sp,30h   ;设置栈顶ss:sp指向cs:30

	mov bx,0
	mov cx,8
	
	s:
	push cs:[bx]
	add bx,2
	loop s      ;将16个数据循环压栈

	mov bx,0
	mov cx,8

	s0:
	pop cs:[bx]
	add bx,2
	loop s0   
	
	mov ax,4c00h  ;将16个数据循环出栈
	int 21h

codesg ends

end start





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

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 在调试一段保护模式代码,搞了大半天发现原来是在切...

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

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

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

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

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

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

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

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

第6章 6.2 在代码段中使用栈

在看原书代码之前,我试图自己完成书中提出的问题:使用代码段中的栈空间,于是我写出了如下代码段: assume cs:code code segment dw 0123h, 0456h, 078...

silverlight 使用的代码段

  • 2015年06月02日 17:01
  • 9KB
  • 下载

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

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

[编译环境][gcc]16位程序中汇编代码与C语言代码的混合编译

在实模式下,默认是的16位数据模式,但可以允许采用32位数据模式。当希望采用32位数据模式时,需要手动在指令前添加0x66来切换数据模式。在汇编代码中,call和ret生成的指令字节都不带0x66,也...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:16位汇编 在代码段中使用栈
举报原因:
原因补充:

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