8086总汇编语言实现1616点阵输出6中字体变换.docx

上传人:b****6 文档编号:5151323 上传时间:2022-12-13 格式:DOCX 页数:15 大小:55.95KB
下载 相关 举报
8086总汇编语言实现1616点阵输出6中字体变换.docx_第1页
第1页 / 共15页
8086总汇编语言实现1616点阵输出6中字体变换.docx_第2页
第2页 / 共15页
8086总汇编语言实现1616点阵输出6中字体变换.docx_第3页
第3页 / 共15页
8086总汇编语言实现1616点阵输出6中字体变换.docx_第4页
第4页 / 共15页
8086总汇编语言实现1616点阵输出6中字体变换.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

8086总汇编语言实现1616点阵输出6中字体变换.docx

《8086总汇编语言实现1616点阵输出6中字体变换.docx》由会员分享,可在线阅读,更多相关《8086总汇编语言实现1616点阵输出6中字体变换.docx(15页珍藏版)》请在冰豆网上搜索。

8086总汇编语言实现1616点阵输出6中字体变换.docx

8086总汇编语言实现1616点阵输出6中字体变换

8086汇编语言实现16*16点阵输出汉字以与6种变化

所使用实验板,实验板上有地址所以在程序中不再表现,:

程序:

STACKedSEGMENTSTACK

STADW1000DUP(?

TOPEQUSIZESTA

STACKedENDS

;堆栈段定义

DATASEGMENT

TABLEDB0FCH,3FH,0FCH,3FH,80H,01H,80H,01H,0F8H,1FH,0F8H,1FH,80H,01H,80H,01H,80H,01H,0C0H,03H,60H,06H,30H,0CH,18H,18H,0CH,30H,06H,60H,03H,0C0H

DB0CH,02H,18H,02H,0B0H,0FH,20H,0AH,0C4H,7FH,1CH,0AH,0B8H,0FH,20H,02H,00H,02H,0C0H,1FH,20H,02H,30H,02H,0F0H,3FH,18H,02H,0CH,02H,0CH,02H

DB00H,00H,80H,01H,80H,01H,80H,01H,0FCH,3FH,0FCH,3FH,0C0H,03H,0C0H,03H,60H,06H,60H,0CH,30H,1CH,18H,18H,18H,18H,0CH,30H,06H,60H,06H,60H

DB48H,0CH,48H,06H,90H,03H,0FCH,1FH,04H,10H,04H,10H,0E0H,03H,00H,01H,80H,00H,80H,00H,0F8H,0FH,80H,00H,80H,00H,0A0H,00H,0C0H,00H,80H,00H

TEMPDB32DUP(00H)

DXX_TDW?

P2_COUNTDB?

P2_COUNT1DB?

DATAENDS

;数据段定义,其中TABLEA表中输入的是“某某大学〞四个字的字体模型,用于在LED上输出,字模设计由个人自己设计,本实验以“某某大学〞4个字为例

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACKed

START:

MOVAX,DATA

MOVDS,AX

MOVAX,STACKed

MOVSS,AX

MOVSP,TOP;程序段地址的传输

;---------------------------常规变换----------------------------------

MOVBX,OFFSETTABLE;BX可以用来向此子程序传输显示值地址

MOVSI,04FFH;字体切换时间

CALLDISPLAY

ADDBX,20H;BX可以用来向此子程序传输显示值地址

MOVSI,04FFH;字体切换时间

CALLDISPLAY

ADDBX,20H;BX可以用来向此子程序传输显示值地址

MOVSI,04FFH;字体切换时间

CALLDISPLAY

ADDBX,20H;BX可以用来向此子程序传输显示值地

MOVSI,04FFH;字体切换时间

CALLDISPLAY

;---------------------------输出阴文----------------------------------

MOVBX,OFFSETTABLE;BX可以用来向此子程序传输显示值地址

MOVSI,04FFH;字体切换时间

CALLDISPLAY2

ADDBX,20H;BX可以用来向此子程序传输显示值地址

MOVSI,04FFH;字体切换时间

CALLDISPLAY2

ADDBX,20H;BX可以用来向此子程序传输显示值地址

MOVSI,04FFH;字体切换时间

CALLDISPLAY2

ADDBX,20H;BX可以用来向此子程序传输显示值地

MOVSI,04FFH;字体切换时间

CALLDISPLAY2

;----------------------------向上滑行----------------------------------

MOVBX,OFFSETTABLE;BX可以用来向此子程序传输显示值地址

MOVCX,0000H

MOVDX,0000H

C2_DELAY:

INCDX

MOVSI,008FH

CALLDISPLAY

CMPDX,0009H;调节控制第123个字的环

JNAC2_DELAY

SUBBX,02H

AGAIN:

ADDBX,02H

MOVSI,008FH;调整控制上升速度

CALLDISPLAY

ADDCL,01H

CMPCL,10H

JNAC2

INCCH

MOVCL,00H

MOVDX,0000H

C_DELAY:

INCDX

CALLDISPLAY

CMPDX,0009H;延时循环

JNAC_DELAY

SUBBX,02H

C2:

CMPCH,02H

JNAAGAIN

;--------------------------左右两边滑行消失-------------------------------

MOVBX,OFFSETTABLE;BX可以用来向此子程序传输显示值地址

MOVSI,0CF10H;字体切换时间

CALLDISPLAY1

ADDBX,20H

MOVSI,0CF10H;字体切换时间

CALLDISPLAY1

ADDBX,20H

MOVSI,0CF10H;字体切换时间

CALLDISPLAY1

ADDBX,20H

MOVSI,0CF10H;字体切换时间

CALLDISPLAY1

;---------------------------逐行刷新----------------------------------

MOVCX,0000H

MOVBX,OFFSETTABLE

MOVDI,OFFSETTEMP

C3_LOOP:

MOVAL,[BX]

MOV[DI],AL

MOVAL,[DI]

INCBX

INCDI

MOVAL,[BX]

MOV[DI],AL

MOVAL,[DI]

INCBX

INCDI

INCCL

INCCH

PUSHBX

MOVBX,OFFSETTEMP;BX可以用来向此子程序传输显示值地址

MOVSI,008FH;字体切换速度

CALLDISPLAY

POPBX

CMPCL,0FH

JNAC3_JUDGE

MOVDI,OFFSETTEMP

MOVCL,00H

MOVDX,0000H

C3_DELAY:

INCDX

PUSHBX

MOVBX,OFFSETTEMP;BX可以用来向此子程序传输显示值地址

MOVSI,00FFH;字体暂留时间

CALLDISPLAY

POPBX

CMPDX,0005H;字体停留时间

JNAC3_DELAY

C3_JUDGE:

CMPCH,3FH

JNAC3_LOOP

;---------------------------分块刷新----------------------------------

MOVCX,0000H

MOVBX,OFFSETTABLE

MOVDI,OFFSETTEMP

CLEAR:

MOVAL,00H

MOV[DI],AL

INCDI

INCCL

CMPCL,20H

JNACLEAR

MOVCL,00H

C4_LOOP:

MOVDI,OFFSETTEMP

C4_MOV:

MOVAL,[BX]

MOV[DI],AL

MOVAL,[DI]

ADDBX,02H

ADDDI,02H

INCCL

CMPCL,10H

JNAC4_MOV

MOVCL,00H

PUSHBX

MOVBX,OFFSETTEMP;BX可以用来向此子程序传输显示值地址

MOVSI,00FFH;字体切换速度

CALLDISPLAY

POPBX

SUBBX,21H

SUBDI,21H

C4_MOV2:

MOVAL,[BX]

MOV[DI],AL

MOVAL,[DI]

ADDBX,02H

ADDDI,02H

INCCL

CMPCL,10H

JNAC4_MOV2

MOVCL,00H

PUSHBX

MOVBX,OFFSETTEMP;BX可以用来向此子程序传输显示值地址

MOVSI,003FFH;字体切换速度

CALLDISPLAY

POPBX

SUBBX,03H

INCCH

CMPCH,03H

JNAC4_LOOP

;------------------------程序停止---------------------------

MOVAH,4CH

INT21H

;-------------------------------------------------DISPLAY-----------------------------------------------

;程序作用:

对一个32个Bite的数据在16*16数码版上做输出

;入口参数:

BX中存入32Bite的数据段的首地址

;SI中存入让此32Bite数据显示的时间长短

;无输出参数

;子程序自动进展现场保护

;------------------------------------------------------------------------------------------------------------

DISPLAYPROCNEAR

PUSHAX

PUSHBX

PUSHCX

PUSHDX

PUSHBP

PUSHSI

MOVAH,00H

MOVCX,8000H

MOVBP,02B3H

CLC

P1_LOOP:

MOVDX,02B0H;行

PUSHBX;第一次压入保护2B0H中BX

PUSHBX;第二次压入保护2B1H中BX

MOVAL,CL

ADDBX,AX

MOVAL,[BX]

OUTDX,AL

MOVDX,02B1H;行

POPBX;取出2B1H中BX

MOVAL,CL

INCAL

ADDBX,AX

MOVAL,[BX]

OUTDX,AL

POPBX;取出2B0H中BX

MOVDX,BP;列

MOVAL,CH

OUTDX,AL

CMPBP,02B3H

JNZP1_SHOW

MOVDX,02B2H

MOVAL,00H

OUTDX,AL

JMPP1_JMP

P1_SHOW:

MOVDX,02B3H

MOVAL,00H

OUTDX,AL

P1_JMP:

ADDCL,02H

RCRCH,1

CMPCH,00H

JAP1_JUDGE1;大于时不做修改,直接跳转

CMPBP,02B3H

JZP1_CHANG;等于时,改变片选

MOVBP,02B3H

MOVCH,80H

JMPP1_JUDGE1

P1_CHANG:

MOVBP,02B2H

MOVCH,80H

P1_JUDGE1:

CMPCL,1FH

JNAP1_JUDGE2;不大于时直接跳过

MOVCL,00H

P1_JUDGE2:

MOVDX,0000H

DELAY:

INCDX

CMPDX,06500H;延时循环

JNADELAY

DECSI

CMPSI,0000H

JNAP1_OUT;不大于,这里是等于零,表示每一行都输出过

JMPP1_LOOP

P1_OUT:

POPSI

POPBP

POPDX

POPCX

POPBX

POPAX

RET

DISPLAYENDP

;-----------------------------------------------DISPLAY1----------------------------------------------------------

;程序作用:

对一个32个Bite的数据在16*16数码版上做输出,输出最后会实现文字从左右

;滑行消失

;入口参数:

BX中存入32Bite的数据段的首地址

;SI中存入让此32Bite数据显示的时间长短

;无输出参数

;子程序自动进展现场保护

;----------------------------------------------------------------------------------------------------------------------

DISPLAY1PROCNEAR

PUSHAX

PUSHBX

PUSHCX

PUSHDX

PUSHBP

PUSHSI

MOVAH,00H

MOVCX,8000H

MOVP2_COUNT,00H

MOVP2_COUNT1,00H

MOVBP,02B3H

CLC

P1_LOOP:

MOVDX,02B0H;行

PUSHBX;第一次压入保护2B0H中BX

PUSHBX;第二次压入保护2B1H中BX

MOVAL,P2_COUNT

ADDBX,AX

MOVAL,[BX]

SHRAL,CL

OUTDX,AL

MOVDX,02B1H;行

POPBX;取出2B1H中BX

MOVAL,P2_COUNT

INCAL

ADDBX,AX

MOVAL,[BX]

SHLAL,CL

OUTDX,AL

POPBX;取出2B0H中BX

MOVDX,BP;列

MOVAL,CH

OUTDX,AL

CMPBP,02B3H

JNZP1_SHOW

MOVDX,02B2H

MOVAL,00H

OUTDX,AL

JMPP1_JMP

P1_SHOW:

MOVDX,02B3H

MOVAL,00H

OUTDX,AL

P1_JMP:

ADDP2_COUNT,02H

RCRCH,1

CMPCH,00H

JAP1_JUDGE1;大于时不做修改,直接跳转

CMPBP,02B3H

JZP1_CHANG

MOVBP,02B3H

MOVCH,80H

JMPP1_JUDGE1

P1_CHANG:

MOVBP,02B2H

MOVCH,80H

P1_JUDGE1:

CMPP2_COUNT,1FH

JNAP1_JUDGE2;不大于时直接跳过

MOVP2_COUNT,00H

INCP2_COUNT1

CMPP2_COUNT1,030H;调整可以控制暂留时间

JNAP1_JUDGE2

INCCL

CMPCL,0DH;左移位数,可调节消失时间

JAP1_OUT

P1_JUDGE2:

MOVDX,0000H

DELAY:

INCDX

CMPDX,06500H;延时循环+向左滑的速度

JNADELAY

DECSI

CMPSI,0000H

JNAP1_OUT

JMPP1_LOOP

P1_OUT:

POPSI

POPBP

POPDX

POPCX

POPBX

POPAX

RET

DISPLAY1ENDP

;---------------------------------------------DISPLAY2----------------------------------------------

;程序作用:

对一个32个Bite的数据在16*16数码版上做阴文输出

;入口参数:

BX中存入32Bite的数据段的首地址

;SI中存入让此32Bite数据显示的时间长短

;无输出参数

;子程序自动进展现场保护

;-------------------------------------------------------------------------------------------------------

DISPLAY2PROCNEAR

PUSHAX

PUSHBX

PUSHCX

PUSHDX

PUSHBP

PUSHSI

MOVAH,00H

MOVCX,8000H

MOVBP,02B3H

CLC

P3_LOOP:

MOVDX,02B0H;行

PUSHBX;第一次压入保护2B0H中BX

PUSHBX;第二次压入保护2B1H中BX

MOVAL,CL

ADDBX,AX

MOVAL,[BX]

NOTAL

OUTDX,AL

MOVDX,02B1H;行

POPBX;取出2B1H中BX

MOVAL,CL

INCAL

ADDBX,AX

MOVAL,[BX]

NOTAL

OUTDX,AL

POPBX;取出2B0H中BX

MOVDX,BP;列

MOVAL,CH

OUTDX,AL

CMPBP,02B3H

JNZP3_SHOW

MOVDX,02B2H

MOVAL,00H

OUTDX,AL

JMPP3_JMP

P3_SHOW:

MOVDX,02B3H

MOVAL,00H

OUTDX,AL

P3_JMP:

ADDCL,02H

RCRCH,1

CMPCH,00H

JAP3_JUDGE1;大于时不做修改,直接跳转

CMPBP,02B3H

JZP3_CHANG;等于时,改变片选

MOVBP,02B3H

MOVCH,80H

JMPP3_JUDGE1

P3_CHANG:

MOVBP,02B2H

MOVCH,80H

P3_JUDGE1:

CMPCL,1FH

JNAP3_JUDGE2;不大于时直接跳过

MOVCL,00H

P3_JUDGE2:

MOVDX,0000H

DELAY3:

INCDX

CMPDX,06500H;调节控制字体刷新速度

JNADELAY3

DECSI

CMPSI,0000H

JNAP3_OUT;不大于,这里是等于零,表示每一行都输出过

JMPP3_LOOP

P3_OUT:

POPSI

POPBP

POPDX

POPCX

POPBX

POPAX

RET

DISPLAY2ENDP

CODEENDS

ENDSTART

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1