目录 上一页 下一页 下一章

-68- PC机汇编语言实战精解

0B0B:0104
-r
AX=0000BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=0B0BES=0B0BSS=0B0BCS=0B0BIP=0100 NV UP EI PL NZ NA PO NC
0B0B:0100B00FMOV AL,0F
-t
AX=00FFBX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=0B0BES=0B0BSS=0B0BCS=0B0BIP=0102 NV UP EI PL NZ NA PO NC
0B0B:0102FEC0INC AL
-t
AX=0000BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=0B0BES=0B0BSS=0B0BCS=0B0BIP=0104 NV UP EI PL NZ AC PO NC
0B0B:01047463JZ 0169
  低四位产生进位的情况由AF反映出来。
  采用补码表示法还有一个好处,它可以把加、减法统一成加法,很容易看出1-1和1+FF(-1)的实际结果是一样的。至于补码的乘除法运算这里不再多讲,查阅有关书籍即可掌握。
  明白了数字的表示方法,那么我们在前面讨论的移位与乘除法的问题也就迎刃而解了。用"SHL/SHR"指令移位会使符号位发生变化,所以负数无法用这两条指令完成乘除计算。
  现在我们从"带符号数"的角度来看0F0H与0FFF0H这两个数,可以看出它们的确是相等的。在计算机技术中数的符号是一个比较微妙的问题,就拿0FFH这个数来说,作为一个"无符号数"(最高位不表示符号)它是+255,而作为"带符号数"它就成了-1。那么计算机究竟把它当成什么呢?这个问题现在讨论它还为时过早,在后面的章节里会对这个问题做补充说明。总之,补码的知识是很重要的,大家应该熟练地掌握。
4.4 更多的技术
  MUSIC已经是我们所编制的最复杂的程序了,在这个程序中我们使用了很重要的间接寻址技术用于取得数据,本节我们将讨论和CALL指令有关的间接寻址技术。
  下面给出的程序可以在我们的控制下产生滑音。程序一开始运行就在屏幕上显示一个"菜单",有三个选项:选"1"可以使机器发出连续上升的声音;选"2"可以使机器发出连续下降的声音;其它按键则使程序结束。请看源程序:
SIREN.ASM
PORTB
M_WORD

CODE



EQU
EQU

SEGMENT
ASSUME
ASSUME

61H
10110110B


CS:CODE,DS:CODE
ES:CODE,SS:CODE

Copyright © 2004-2015 Reanimator www.cookmoon.org

目录 上一页 下一页 下一章