比如,当时机器定的光圈是8.0快门是1/250秒,如果你觉得8.0光圈太小了,虚化不够,那么,你可以调整光圈到5.6,这时,机器就会自动把快门速度调整为1/500,以保持曝光量不变。当然,你也可以改变快门,机器就会调整光圈。
举个例子,你要告诉别人你藏的东西埋在树林里哪个地方,会这么说:从这儿过去,第5棵大树再向前2米。
这里,“第5棵大树”是一个粗的框架,“向前2米”则是在这个框架内以框架为基准的一个偏移量。
8086/8088
cpu
访问内存时,内存地址由两个十六位的二进制数构成,即:段地址+偏移地址。
段地址就是上面例子中的框架,偏移地址就是框架内相对框架基准的一个局部偏移量。
“段地址+偏移地址”这种地址表示方式,称为逻辑地址表示。若要转换成真实的内存物理地址,方法是:段地址x16+偏移地址。
8086/8088中之所以要用逻辑地址,是因为物理地址的长度(20位)超过了处理器的字长(16位),无法一次完整表示,不得不分成两部分。同时这样处理还带来了可以方便程序动态内存定位的好处。
.版本 2.子程序 _按钮1_被单击
.局部变量 偏移1, 整数型
.局部变量 偏移2, 整数型
.局部变量 偏移3, 整数型
.局部变量 偏移4, 整数型
.局部变量 整数数据, 整数型
.局部变量 字节数据, 字节型
偏移1 = 4
偏移2 = 4
偏移3 = 4
偏移4 = 十六到十 (编辑框1.内容)
地址 = 读整型内存 (十六到十 (“00123456”) + 偏移1, 4)
地址 = 读整型内存 (地址 + 偏移2, 4)
地址 = 读整型内存 (地址 + 偏移3, 4)
地址 = 读整型内存 (地址 + 偏移4, 4)
写整型内存 (地址, 整数数据)
写字节内存 (地址, 字节数据)
.子程序 写整型内存, 逻辑型, , 写入四字节数据(成功返回真,失败返回假) [斩月]
.参数 地址, 整数型, , 内存地址
.参数 变量, 整数型, , 写入数据
.局部变量 *** 作句柄, 整数型
.局部变量 是否成功, 整数型
*** 作句柄 = OpenProcess (#PROCESS_ALL_ACCESS, 0, PID)
是否成功 = _写整型内存 ( *** 作句柄, 地址, 变量, 4, 0)
CloseHandle ( *** 作句柄)
.如果 (是否成功 = 0)
返回 (假)
.否则
返回 (真)
.如果结束
.子程序 写字节内存, 逻辑型, , 写入四字节数据(成功返回真,失败返回假) [斩月]
.参数 地址, 整数型, , 内存地址
.参数 变量, 字节型, , 写入数据
.局部变量 *** 作句柄, 整数型
.局部变量 是否成功, 整数型
*** 作句柄 = OpenProcess (#PROCESS_ALL_ACCESS, 0, PID)
a = _写整型内存 ( *** 作句柄, 地址, 变量, 1, 0)
CloseHandle ( *** 作句柄)
.如果 (是否成功 = 0)
返回 (假)
.否则
返回 (真)
.如果结束
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)