汇编中数据和程序有何区别?如何确定内存中的信息那些是数据?那些是程序

汇编中数据和程序有何区别?如何确定内存中的信息那些是数据?那些是程序,第1张

汇编语言中数据程序内存单元中存放的时候没有区别,都是二进制信息。

如果cs:ip指向某个内存单元,那么cpu就从这个单元开始往下执行,所以这里就是指令(程序)。

如果用任何一种存储器寻址方式指向某个单元,并且是作为 *** 作数来使用的,那么这就是数据。

其实如果只是单纯看一个内存单元,是无法区分到底是数据还是程序的。只能是写程序时,用汇编指令做不同的解释。

对的,一般执行程序段都是从CS:IP开始的,所以当2进制的数据被CS:IP指向时,才成为可执行的指令或程序,在内存中数据和程序都是以机器码存储的,也就是以2进制存储的,你可以用debug调试程序,熟了就知道了,里面有反汇编,可以查找到内存中的内容的指令,-U

当程序运行时,会调入内存,不同时间运行,程序放在内存的位置也可能不同:每运行一次程序,程序都会重新向 *** 作系统申请内存空间,这时 *** 作系统会分配一段全新的内存空间给程序,故不同时间运行程序,程序在内存中的位置是不同的。 2.使用内存中数据的位置也可能不同:当程序申请内存空间后, *** 作系统会将所申请的内存空间的地址传给程序,尽管数据的位置不同,但程序知道数据的地址,故程序依然可以根据地址来找到所需要的数据。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8068493.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存