-68- | PC机汇编语言实战精解 | ![]() |
|||||||||||||||||||
0B0B:0104 | |||||||||||||||||||||
-r | |||||||||||||||||||||
AX=0000 | BX=0000 | CX=0000 | DX=0000 | SP=FFEE | BP=0000 | SI=0000 | DI=0000 | ||||||||||||||
DS=0B0B | ES=0B0B | SS=0B0B | CS=0B0B | IP=0100 | NV UP EI PL NZ NA PO NC | ||||||||||||||||
0B0B:0100 | B00F | MOV AL,0F | |||||||||||||||||||
-t | |||||||||||||||||||||
AX=00FF | BX=0000 | CX=0000 | DX=0000 | SP=FFEE | BP=0000 | SI=0000 | DI=0000 | ||||||||||||||
DS=0B0B | ES=0B0B | SS=0B0B | CS=0B0B | IP=0102 | NV UP EI PL NZ NA PO NC | ||||||||||||||||
0B0B:0102 | FEC0 | INC AL | |||||||||||||||||||
-t | |||||||||||||||||||||
AX=0000 | BX=0000 | CX=0000 | DX=0000 | SP=FFEE | BP=0000 | SI=0000 | DI=0000 | ||||||||||||||
DS=0B0B | ES=0B0B | SS=0B0B | CS=0B0B | IP=0104 | NV UP EI PL NZ AC PO NC | ||||||||||||||||
0B0B:0104 | 7463 | JZ 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 |