![]() | 第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 |