奎克的藏经阁 · 原书印刷页

编码 隐匿在计算机软硬件背后的语言 · 第 247 页

PDF 物理页索引 263 · 编码隐匿在计算机软硬件背后的语言

书名
编码 隐匿在计算机软硬件背后的语言
作者
未记录
印刷页
247
PDF 物理页
263(从 0 开始)
章节
编码隐匿在计算机软硬件背后的语言
UUID
38270854-596f-4a26-8183-db8c968c6020
来源类型
original_book
页面 SHA-256
088d7ab13429c5bffd8fb908a6a59557d74df006e6d19696f80eb27a4aac0602

位于助记符右侧的 A和[1003h]称为参数(argument),它们是这个Load 指令的操作对象。参数由两部分组成,左边的操作数称为目标(destination)操作数(A代表累加器),右边的操作数称为源(source)操作数。方括号“[]”表明要加载到累加器的不是1003h这个数值,而是位于存储器地址1003h的数值。

类似的,指令“把001Eh地址的字节加到累加器”,可以简写为:

ADD A, [0010Eh]

指令“把累加器中的内容保存到1003h地址”,可简写为:

STO [1003h], A

注意,在上面的语句中,目标操作数(Store指令在存储器中的位置)仍然在左边,源操作数在右边。这就决定了累加器中的内容必须要保存到存储器的1003h地址。“如果零标志位不是1则跳转到0000h地址处”这个冗长的语句可以简明地表示为:

JNZ 0000h

注意,这里没有使用方括号,这是因为跳转指令要转移到的地址是0000h,而不是保存于0000h地址的值,即0000h地址就是跳转指令的操作数。

用缩写的形式表示指令是很方便的,因为在这种形式下指令以可读的方式顺序列出而不必画出存储器的空间分配情况。通过在一个十六进制地址后面加一个冒号,可以表示某个指令保存在某个特定地址空间,例如:

0000h: LOD A, [1005h]

下面的语句表示了数据在特定地址空间的存储情况。

1000h: 00h, A7h

1002h: 00h, 1Ch

1004h: 00h, 00h

你可能已经注意到了,上面的两个字节都是以逗号分开的,它表示第一个字节保存在左侧的地址空间中,第二个字节保存在该地址后的下一个地址空间中。上面的三条语句等价于下面的这条语句:

1000h: 00h, A7h, 00h, 1Ch, 00h, 00h

17 自动操作

247