目录 上一页 下一页 下一章

第10章 细节补充 -285-

loop1:









;
;
loop2:







loop3:





main

bin8o




loop4:




out_chr:


lodsb
call
loop

call

mov
mov
clc
mov
shl

lodsb
rcr
mov
loop

mov
mov

lodsb
call
loop

ret
endp

proc
push
mov
mov
mov

shl
mov
jc
mov

int


bin8o
loop1

crlf

cx,8
si,offset number+7

al,byte ptr [si]
al,1


al,1
byte ptr [si+1],al
loop2

cx,8
si,offset number+7


bin8o
loop3




near
cx
cx,8
bl,al
ah,0eh

bl,1
al,31h
out_chr
al,30h

10h

;取得一个字节
;按二进制形式显示


;调用CRLF输出回车、换行符

;准备8个字节
;SI寄存器指向64Bit数据的最高16位
;预先清CF标志,完成逻辑移位
;如用这两个指令代替CLC,可完成算术移位


;取得一个字节
;带进位标志的右循环移位,最低位移入CF
;将移位后的数据送回内存
;返回LOOP2继续处理下一个字节

;再次显示移位后的64Bit数据






;结束进程


;按二进制形式显示输出字程序
;保存CX寄存器
;显示8个数位
;将待显示的数据送入BL寄存器
;选择10H中断的0EH功能

;将待显示数据向左移1位,最高位移入CF
;准备显示"1"
;若移出的位为1,转OUT_CHR显示"1"
;若移出的位为0,准备显示"0"

;调用10H中断显示AL寄存器中的字符

Copyright © 2004-2015 Reanimator www.cookmoon.org

目录 上一页 下一页 下一章