-212- | PC机汇编语言实战精解 | ![]() |
|||||||||||||||||||
exit: main disp loop2: loop3: next_dot: output: |
int cmp jnz mov int endp proc push mov mov mov mov mov mov int lodsw xchg push mov shl push mov jnc mov jmp mov int pop loop inc pop loop |
16h al,ESCkey loop1 ah,4ch 21h near bx cx,16 si,offset buffer dh,3 dl,32 ah,2 bh,0 10h ah,al cx cx,16 ax,1 ax ah,0eh next_dot al,2ah output al,20h 10h ax loop3 dh cx loop2 |
;输入的是ESC键吗? ;不是ESC键,转LOOP1继续 ;结束进程 ;DISP子过程 ;保存BX寄存器 ;处理读入的16个字(32字节) ;SI寄存器指向文件缓冲区 ;设置光标的初始行列位置 ;设置光标位置 ;从文件缓冲区取得一个字的数据 ;调整高、低字节的位置 ;暂存CX寄存器中的计数值 ;处理一个字的16个数位 ;将取得的数据从移1位 ;保存移位后的结果,腾出AX寄存器 ;选择10H中断的0EH功能 ;若移出AX的数位为0,转NEXT_DOT输出空格 ;AL寄存器中送入"*" ;转OUTPUT输出AL寄存器中的字符 ;AL寄存器送入空格符 ;输出AL中的字符 ;恢复移位后的结果 ;返回LOOP3处理下一个数位 ;准备将光标移动至下一行 ;恢复CX寄存器 ;返回LOOP2处理下一个字的数据 |
||||||||||||||||||
Copyright © 2004-2015 Reanimator | www.cookmoon.org |