;怎样用汇编语言显示姓名?是中文字翼华最好还能闪烁;在DOS下用字符当点阵显示汉字;;用masm5.0编译通过datasegmentDISP_CDB\'H\';填充点阵字符DISP_ADB05H;属性字节,改变此值可达到不同的显示效果qs1dw30h4*0a0h;定义显示缓冲区起始位置30H是列起始位,4为起始行,0A0H为每行字节数(含属性字节)qs2dw50h4*0a0hyidb7EH,0F8H,22H,88H,1AH,68H,22H,88Hdb02H,08H,1FH,0F0H,11H,10H,1FH,0F0Hdb11H,10H,1FH,0F0H,04H,40H,3FH,0F8Hdb04H,40H,0FFH,0FEH,08H,20H,30H,10Hhuadb04H,40H,04H,48H,08H,58H,08H,60Hdb18H,0C0H,29H,40H,4AH,44H,08H,44Hdb09H,3CH,01H,00H,0FFH,0FEH,01H,00Hdb01H,00H,01H,00H,01H,00H,01H,00Hdataendscodesegmentassumecs:code,ds:datamainprocfarstart:pushdsxorax,axpushaxmovax,datamovds,axMOVAH,0FH;CLSINT10HMOVAH,0INT10H;-------------------------MOVAX,0B800H;DISPMOVES,AXMOVSI,QS1MOVBX,OFFSETyicalldisp_11MOVSI,QS2MOVBX,OFFSETHUAcalldisp_11wait1:movah,01int16hjzwait1RETmainendp;==========================disp_11PROCNEARMOVCX,16;每次读入2字节,需读16次(共32字节)N1:MOVAX,[BX]XCHGAH,ALCALLDISPINCBXINCBXADDSI,0A0H-32;DISPNEXT行LOOPN1retDISP_11ENDP;========================DISPPROCNEAR;每次显示2个字节共16位PUSHCXMOVCX,16N2:ROLAX,1JCDISP1MOVDL,\'\'JMPDISP_KDISP1:MOVDL,DISP_CDISP_K:MOVES:[SI],DLMOVDL,DISP_AINCSIMOVES:[SI],DLINCSILOOPN2POPCXRET;========================codeendsendstart
|