首页 > 其他 > 详细

[汇编语言]-第五章段前缀及使用 一段安全的空间

时间:2014-02-11 16:49:23      阅读:329      评论:0      收藏:0      [点我收藏+]

1- 段前缀

  mov ax,ds:[bx]

  mov ax,cs:[bx]

  mov ax,ss:[bx]

  mov ax,es:[bx]

  mov ax,ss:[0]

  mov ax,cs:[0]

这些出现在访问内存单元的指令中,用于显式的指明内存单元的段地址的"ds,cs,ss,es"在汇编语言中称为段前缀

2- 一段安全的空间

在8086模式中,随意向一段内存空间写入内容是很危险的,因为这段内存空间可能存放着重要的代码或数据.

bubuko.com,布布扣
 1 assume cs:code
 2 code segment
 3     mov ax,0
 4     mov ds,ax
 5     mov ds:[26H],ax
 6     
 7     mov ax:4c00H
 8     int 21h
 9 code ends
10 end
bubuko.com,布布扣

会发生错误.

在操作系统环境中工作,操作系统管理所有资源,也包括内存,如果我们需要向内存空间写入数据的话,要使用操作系统给我们分配的空间.而不应直接用地址任意指定内存单元,向里面写入.

 

bubuko.com,布布扣
 1 ;将内存ffff:0~ffff:b单元中的数据拷贝到0:200~0:20b单元中
 2 assume cs:code
 3 code segment
 4     mov ax,0ffffH
 5     mov ds,ax
 6     
 7     mov ax,0020H
 8     mov es,ax
 9     
10     mov dx,0
11     mov bx,0
12     mov cx,12
13   s:mov dl,ds:[bx]
14     mov es:[bx],dl
15     inc bx
16     loop s
17      
18     mov ax,4c00H
19     int 21h
20 code ends
21 end
bubuko.com,布布扣

 

 bubuko.com,布布扣

总结:

(1) 我们需要向一段内存写入内容

(2) 这段内存空间不应存放系统或其他程序的数据和代码,否则写入操作很可能发生错误

(3) Dos方式下一般情况 0:200-0:300空间中没有系统或其他程序数据和代码

(4) 以后如果需要向一段内存中直接写入内容时,就使用0:200-0:300这段空间

 

0:200-0:300 可转为 0200H-0300H 即 020:0-030:0

[汇编语言]-第五章段前缀及使用 一段安全的空间

原文:http://www.cnblogs.com/galoishelley/p/3544126.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!