-266- | PC机汇编语言实战精解 | ![]() |
|||||||||||||||||||
even_line: |
push push push push push mov mov mov mov shr jnc mov mov mul add mov mov div push mov add pop xchg shl mov shr or pop pop pop pop pop |
bx cx dx di es ax,0b800h es,ax di,0 ax,dx ax,1 even_line di,2000h bx,80 bx di,ax ax,cx bl,4 bl ax ah,0 di,ax cx ch,cl cl,1 al,01000000b al,cl byte ptr es:[di],al es di dx cx bx |
;ES:DI指向图形显示缓冲区首 ;Y坐标送入AX寄存器 ;判断Y坐标是否为奇数 ;若移出的位是0,说明所画线位于偶数行 ;所画线位于奇数行,DI指向偏移2000H处 ;计算"行数 x 80" ;"行数 x 80"累加入DI寄存器 ;计算一行内的偏移量 ;暂存余数 ;将商转换成16位累加入DI寄存器 ;将余数送入CH寄存器 ;交换CH,CL寄存器 ;余数 x 2作为移位计数 ;最高两位为颜色值 ;将颜色值移到指定位置 ;将含有颜色值的字节送入显示缓冲区 ;恢复寄存器 |
||||||||||||||||||
Copyright © 2004-2015 Reanimator | www.cookmoon.org |