第一:实模式下程序的运行回顾.
程序运行的实质是什么?其实很简单,就是指令的执行,显然CPU
是指令得以执行的硬件保障,那么CPU如何知道指令在什么地方呢?
对了,80x86系列是使用CS寄存器配合IP寄存器来通知CPU指令在内存
中的位置.
程序指令在执行过程中一般还需要有各种数据,80x86系列有DS、
ES、FS、GS、SS等用于指示不同用途的数据段在内存中的位置。
程序可能需要调用系统的服务子程序,80x86系列使用中断机制
来实现系统服务。
总的来说,这些就是实模式下一个程序运行所需的主要内容
(其它如跳转、返回、端口操作等相对来说比较次要。)
第二:保护模...


[2007-10-12 15:34] cpu 保护模式(转)
[2010-10-04 22:47] 汇编学习 第二章 寄存器
关于数制的讨论
任何数据,到了计算机中都是以二进制的形式存放的。为了描述不同的问题,又经常将它们用其他的进制来表示。比如图2.4中寄存器AX中的数据是0100111000100000,这就是AX中的信息本身,可以用不同的逻辑意义来看待它。可以将它看作一个数值,大小是20000。
当然,二进制数0100111000100000本身也可表示一个数值的大小,但人类习惯的是十进制,用十进制20000表示可以使我们直观地感受到这个数值的大小。
十六进制数的一位相当于二进制数的四位,如0100111000100000可表示成:4(0100)、E(1110)、2(0010)、0(0000)...
任何数据,到了计算机中都是以二进制的形式存放的。为了描述不同的问题,又经常将它们用其他的进制来表示。比如图2.4中寄存器AX中的数据是0100111000100000,这就是AX中的信息本身,可以用不同的逻辑意义来看待它。可以将它看作一个数值,大小是20000。
当然,二进制数0100111000100000本身也可表示一个数值的大小,但人类习惯的是十进制,用十进制20000表示可以使我们直观地感受到这个数值的大小。
十六进制数的一位相当于二进制数的四位,如0100111000100000可表示成:4(0100)、E(1110)、2(0010)、0(0000)...
[2009-10-22 20:17] 实验1 实验任务
(1)使用debug,将下面的程序段写入内存,逐条执行,观察每条指令执行后,CPU中相关寄存器中内容的变化。
a命令以前用过,这次是用e命令写入的。
C:\DOCUME~1\ADMINI~1>debug
-e1000:0 b8 20 4e 05 16 14 bb 00 20 01 d8 89 c3 01 d8 b8
-e1000:10 1a 00 bb 26 00 00 d8 00 dc 00 c7 b4 00 00 d8 04
-e1000:20 9c
-d1000:0 20
1000:0000 B8 20 4E 05 16 14 BB 00-20 01 D8 89 C3 0...
a命令以前用过,这次是用e命令写入的。
C:\DOCUME~1\ADMINI~1>debug
-e1000:0 b8 20 4e 05 16 14 bb 00 20 01 d8 89 c3 01 d8 b8
-e1000:10 1a 00 bb 26 00 00 d8 00 dc 00 c7 b4 00 00 d8 04
-e1000:20 9c
-d1000:0 20
1000:0000 B8 20 4E 05 16 14 BB 00-20 01 D8 89 C3 0...
页码数(1):
1