段寄存器,微机原理中的代码段寄存器和数据段寄存器有何区别
来源:整理 编辑:智能门户 2023-08-25 06:35:44
本文目录一览
1,微机原理中的代码段寄存器和数据段寄存器有何区别

2,段寄存器主要是干什么的
段寄存器包括代码段寄存器CS、堆栈段寄存器SS、数据段寄存器DS和附加段数据寄存器ES
是为对内存的分段管理而设置的
3,段寄存器有什么作用为什么在32位微处理器中段寄存器仍是16位的
在32位的计算机里面,16位的段寄存器里面的是段选择子的首地址,通过16位段寄存器中的地址找到段选择子从而可以确定段基地址。其实,可以像8086那样,使用32位段寄存器+32位偏移地址,但是英特尔公司没有这样做,其中肯定有我们不能理解的、更优越的原因。
个人见解,供参考你用的是16位汇编,当然段寄存器还是16位的
在32位机里所有的寄存器名前都加了E 如EAX EBX ECX EDX 等等
在32位机里运行16位程序要以兼容模式运行
你可以选择32位的汇编来写32位的程序
4,段寄存器有什么作用
1, 代码段寄存器CS:存放当前正在运行的程序代码所在段的段基值,表示当前使用的指令代码可以从该段寄存器指定的存储器段中取得,相应的偏移值则由IP提供。
2, 数据段寄存器DS:指出当前程序使用的数据所存放段的最低地址,即存放数据段的段基值。
3, 堆栈段寄存器SS:指出当前堆栈的底部地址,即存放堆栈段的段基值。
4, 附加段寄存器ES:指出当前程序使用附加数据段的段基址,该段是串操作指令中目的串所在的段。
段寄存器里放的是地址还是数据还是其他的东西?
是放的段基值,通俗说就是段的起始点(具体地址是段基值+偏移),这个数值是地址不是数据。
5,请问段寄存器在WIN32汇编中有什么用
win32里段寄存器里存放的是段选择子, 作用也是带定址的, 与实模式相比,段选择子代替了原来的段基址。从本质上来讲,段选择子最终还是要转化成段基址 段选择子长16位,其格式如上图所示。从图中可见,段选择子的高13位是描述符的索引值。所谓描述符索引是指描述符在描述符表中的序号。由于描述符总是8个字节的,所以将描述符索引值逻辑左移3位即可得到对应描述符在描述符表中的偏移地址,再加上描述符表起始地址就可以确定描述符的位置,这算是一个小技巧。段段选择子的第2位是引用描述符表指示位,标记为TI(Table Indicator),TI=0表示该选择子指示的是全局描述符表GDT中的描述符,TI=1表示该选择子指示的是局部描述符表LDT中的描述符。第0和第1位称为RPL(Request Privilege Level请求特权级),用于特权级控制,在上一个问题中有详细描述。通过段选择子,我们可以从GDT或LDT中找到需要的段描述符,段描述符中存储着目标段的基址(起始地址),界限(段的范围)以及其他一些控制信息,由此,我们完成了段选择子到段基址的转化。这个你看老罗的WIN32汇编程序设计有详细讲,百度搜PDF吧。你好!变成了选择子寄存器。如果对你有帮助,望采纳。
6,什么是段寄存器
在汇编语言源程序中可以定义多个段,每个段都要与一个段寄存器建立一种对应关系。建立这种对应关系的说明语句格式如下: ASSUME 段寄存器名:段名[, 段寄存器名:段名, ……] 其中:段寄存器是CS、DS、ES、SS、FS和GS,段名是在段定义语句说明时的段名。 在一条ASSUME语句中可建立多组段寄存器与段之间的关系,每种对应关系要用逗号分隔。例如, ASSUME CS:CODE1, DS:DATA1 上面的语句说明了:CS对应于代码段CODE1,DS对应于数据段DATA1。 在ASSUME语句中,还可以用关键字NOTHING来说明某个段寄存器不与任何段相对应。下面语句说明了段寄存器ES不与某段相对应。 ASSUME ES:NOTHING 在通常情况下,代码段的第一条语句就是用ASSUME语句来说明段寄存器与段之间的对应关系。在代码段的其它位置,还可以用另一个ASSUME语句来改变前面ASSUME语句所说明的对应关系,这样,代码段中的指令就用最近的ASSUME语句所建立的对应关系来确定指令中的有关信息。 例6.1 汇编语言段及其段说明语句的作用。 DATA1SEGMENT;定义数据段DATA1 word1DW 5678h byte1DB \"ABCDEFG\" DATA1ENDS DATA2SEGMENT;定义数据段DATA2 word2DW 1234h word3DW 9876h DATA2ENDS DATA3SEGMENT;定义数据段DATA3 byte2DB ? DATA3ENDS CODE1SEGMENT;编写代码段CODE1 ASSUMECS:CODE1, DS:DATA1, ES:DATA2;(1) MOVAX, DATA1;(2) MOVDS, AX;(3) MOVAX, DATA2;(4) MOVES, AX;(5) … MOVAX, word1;访问段DATA1中的字变量word1 MOVword2, AX;访问段DATA2中的字变量word2 … ASSUMEDS:DATA3, ES:NOTHING;(6) MOVAX, DATA3 MOVDS, AX MOVBL, byte2;访问段DATA3中的字节变量byte2 … MOVAX, 4C00H;(7) INT21H;(8) CODE1 ENDS 语句(1)和(6)分别说明了段和段寄存器之间的对应关系,其中语句(6)重新说明语句(1)所指定的对应关系。 二组语句(2)和(3)、(4)和(5)实现对段寄存器DS和ES赋初值。ASSUME说明语句只起说明作用,它不会对段寄存器赋值,所以,必须对有关段寄存器赋值。在以后的其它源程序中也都是用此方法来实现对数据段寄存器赋值的。 语句(7)和(8)是调用中断21H的4CH号功能来结束本程序的执行,程序的返回代码由寄存器AL来确定。结束本程序执行的指令是所有主模块必须书写的语句。 注意:代码段寄存器不能由程序员在源程序中对其赋值,其值是由操作系统在装入它进入系统运行时自动赋值的。8086处理器寄存器只能存储16位的值 也就是访问内存最大2的16次方为解决访问空间的问题把内存进行分段得到20位地址 CS(Code Segment):代码段寄存器; DS(Data Segment):数据段寄存器; SS(Stack Segment):堆栈段寄存器; ES(Extra Segment):附加段寄存器。 这些段寄存器都是存储段基址的这些积存器都是16位的 和其他积存器的用来寻址的
文章TAG:
段寄存器 寄存器 微机 微机原理 段寄存器
大家都在看
-
德国和日本制造自动化,机械设计制造及其自动化:各有所长
2022-12-21
-
苹果手机夏天自动关机,苹果手机自动关机重启原因是什么?
2022-12-23
-
小米5怎么不自动锁屏,小米5如何刷机?
2023-01-02
-
米5关了自动亮度,手机亮度无法调整小米平板5自动亮度
2023-01-09
-
qq农场自动偷菜软件,点击鼠标右键农场免费领取方式
2023-01-10
-
大疆御自动连拍,大疆御mavic2自动对焦模式支持三种模式
2023-02-10
-
三星s7取消自动关闭,电脑出现病例怎么办?教你如何正确操作
2023-02-19
-
华为荣耀自动清理内存,华为荣耀8怎么清理内存?
2023-03-02
-
电脑经常自动重启的原因,电脑自动重启频繁是什么原因?
2023-03-29
-
立林科技智能终端机是什么,智能终端是什么中央处理机是什么计算机体系结构是什么
2023-03-30
-
智能黑科技公司在哪里,黑科技在哪里
2023-04-07
-
工业过程自动化专业,工业过程自动化技术这个专业麻烦通俗的讲一下他与我们生活有
2023-04-18
-
乐视视频怎么关会员自动续费,如何进入乐视官网?
2023-04-19
-
医疗科技智能化专业学什么,求助本科专业的智能科学与技术都学什么
2023-04-21
-
金眼智能科技怎么样,张家口金垣智能科技有限公司待遇如何
2023-04-22