目录 上一页 下一页 下一章

第10章 细节补充 -273-

out_chr




out_num
code

label
or
mov
int
ret
endp
ends
end
near
al,30h
ah,0eh
10h



main
;定义一个标号
;将4位数据转换成ASCII码
;利用10H中断的0EH功能将ASCII码输出

;返回主过程



  BCD运算与调整有时也可以应用到其它方面,比如下面给出的这个程序例就是应用了BCD运算将AX寄存器中的数据按十六进制的形式显示在屏幕上。请大家自行分析这个程序中所用的技巧。
  程序中新出现了一条指令--ADC,这条指令以ADD一样用于完成加法,不过它在把两个操作数相加之后还要多加一些东西:
助记符:ADC(Add with Carry)
用 途:完成带进位的加法运算
格 式:ADC 寄存器,立即数
    ADC 寄存器,寄存器
    ADC 寄存器,存储单元
    ADC 存储单元,寄存器
执 行:两个操作数相加,再加上标志寄存器的CF位,所得结果保存在左边
    的寄存器或存储单元中。
  所谓多加的东西,就是标志寄存器中的CF位。举个例子,如果AX=0003H,BX=0005H,CF=1,那么执行指令"ADD AX,BX"之后将得结果AX=0008H,若执行的指令是"ADC AX,BX",那么结果就是AX=0009H,CF标志被加入结果中。
  与这个指令相对的就是带借位的减法指令--SBB:
助记符:SBB(Subtract with Borrow)
用 途:完成带借位的减法运算
格 式:SBB 寄存器,立即数
    SBB 寄存器,寄存器
    SBB 寄存器,存储器
    SBB 存储器,寄存器
执 行:两个操作数相减,同时减去CF标志,结果保存在左边的寄存器或存
    储单元中。
TESTKEY.
ESC_KEY
code

ASM
equ
segment
assume

1bh

cs:code,ds:code

;ESC键的ASCII码



Copyright © 2004-2015 Reanimator www.cookmoon.org

目录 上一页 下一页 下一章