⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 界面源程序.txt

📁 界面汇编程序源代码.不错的程序.光带界面.主要内容磕自己添加
💻 TXT
📖 第 1 页 / 共 2 页
字号:
changemenu 2,4,6,0fh 
mov subnum,2 
mov subshow,1 
setpos 0,3 
ret 
falt endp 
;---------------- 
prsup proc near; 按上箭头 
cmp subshow,0 
jne prsup2 
ret 
prsup2: 
mov al,mainnum 
push ax 
mov cl,0ah 
mul cl 
sub ax,07h 
mov mainnum,al 
changemenu subnum,mainnum,8,70h 
inc mainnum 
changemenu subnum,mainnum,1,74h 
pop ax 
mov mainnum,al 

cmp subnum,02h 
jne prsuptop 
mov subnum,04h 
jmp prsup1 
prsuptop: 
dec subnum 
prsup1: 
mov al,mainnum 
push ax 
mov cl,0ah 
mul cl 
sub ax,07h 
mov mainnum,al 
changemenu subnum,mainnum,8,0fh 
pop ax 
mov mainnum,al 
ret 
prsup endp 
;---------------- 
prsdown proc near; 按下箭头 
cmp subshow,0 
jne prsdown2 

cmp mainnum,1 
jne prsdown3 
call falt 
jmp prsdown7 
prsdown3: 
cmp mainnum,2 
jne prsdown4 
call ealt 
jmp prsdown7 
prsdown4: 
cmp mainnum,3 
jne prsdown5 
call ralt 
jmp prsdown7 
prsdown5: 
cmp mainnum,4 
jne prsdown6 
call dalt 
jmp prsdown7 
prsdown6: 
call halt 
prsdown7: 
ret 
prsdown2: 
mov al,mainnum 
push ax 
mov cl,0ah 
mul cl 
sub ax,07h 
mov mainnum,al 
changemenu subnum,mainnum,8,70h 
inc mainnum 
changemenu subnum,mainnum,1,74h 
pop ax 
mov mainnum,al 
cmp subnum,04h 
jne prsdownbot 
mov subnum,02h 
jmp prsdown1 
prsdownbot: 
inc subnum 
prsdown1: 
mov al,mainnum 
push ax 
mov cl,0ah 
mul cl 
sub ax,07h 
mov mainnum,al 
changemenu subnum,mainnum,8,0fh 
pop ax 
mov mainnum,al 
ret 
prsdown endp 
;---------------- 
prsright proc near; 按右箭头 
cmp subshow,0 
je prsright1 
call prsrgtsub 
ret 
prsright1: 
mov al,mainnum 
push ax 
mov cl,0ah 
mul cl 
sub ax,07h 
mov mainnum,al 
changemenu 0,mainnum,5,70h 
changemenu 0,mainnum,1,74h 
pop ax 
mov mainnum,al 
cmp mainnum,05h 
jne prsright2 
mov mainnum,01h 
jmp prsright3 
prsright2: 
inc mainnum 
prsright3: 
cmp mainnum,1 
je prsright4 
cmp mainnum,2 
je prsright4 
cmp mainnum,5 
je prsright4 
cmp mainnum,3 
je prsright5 
cmp mainnum,4 
je prsright6 
prsright4: 
mov mainindex,4 
jmp prsright7 
prsright5: 
mov mainindex,3 
jmp prsright7 
prsright6: 
mov mainindex,5 
prsright7: 
mov al,mainnum 
push ax 
mov cl,0ah 
mul cl 
sub ax,07h 
mov mainnum,al 
changemenu 0,mainnum,mainindex,0fh 
pop ax 
mov mainnum,al 
ret 
prsright endp 
;---------------- 
prsrgtsub proc near;当子菜单打开时按右箭头 
cmp mainnum,1 
jne prsrgt1 
call ealt 
jmp prsrgt5 
prsrgt1: 
cmp mainnum,2 
jne prsrgt2 
call ralt 
jmp prsrgt5 
prsrgt2: 
cmp mainnum,3 
jne prsrgt3 
call dalt 
jmp prsrgt5 
prsrgt3: 
cmp mainnum,4 
jne prsrgt4 
call halt 
jmp prsrgt5 
prsrgt4: 
call falt 
prsrgt5: 
ret 
prsrgtsub endp 
;---------------- 
prsleft proc near;按左箭头 
cmp subshow,0 
je prsleft1 
call prslftsub 
ret 
prsleft1: 
mov al,mainnum 
push ax 
mov cl,0ah 
mul cl 
sub ax,07h 
mov mainnum,al 
changemenu 0,mainnum,5,70h 
changemenu 0,mainnum,1,74h 
pop ax 
mov mainnum,al 
cmp mainnum,01h 
jne prsleft2 
mov mainnum,05h 
jmp prsleft3 
prsleft2: 
dec mainnum 
prsleft3: 
cmp mainnum,1 
je prsleft4 
cmp mainnum,2 
je prsleft4 
cmp mainnum,5 
je prsleft4 
cmp mainnum,3 
je prsleft5 
cmp mainnum,4 
je prsleft6 
prsleft4: 
mov mainindex,4 
jmp prsleft7 
prsleft5: 
mov mainindex,3 
jmp prsleft7 
prsleft6: 
mov mainindex,5 
prsleft7: 
mov al,mainnum 
push ax 
mov cl,0ah 
mul cl 
sub ax,07h 
mov mainnum,al 
changemenu 0,mainnum,mainindex,0fh 
pop ax 
mov mainnum,al 
ret 
prsleft endp 
;---------------- 
prslftsub proc near;当子菜单打开时按左箭头 
cmp mainnum,1 
jne prslft1 
call halt 
jmp prslft5 
prslft1: 
cmp mainnum,2 
jne prslft2 
call falt 
jmp prslft5 
prslft2: 
cmp mainnum,3 
jne prslft3 
call ealt 
jmp prslft5 
prslft3: 
cmp mainnum,4 
jne prslft4 
call ralt 
jmp prslft5 
prslft4: 
call dalt 
prslft5: 
ret 
prslftsub endp 
;---------------- 
exit proc near;退出子过程 
drawwindow 1eh,0,0,24,79 

outputstr msgtitle,15,10,30,13h 
outputstr over,34,15,21,15h 
outputstr msg7,19,9,28,93h 
outputstr msg7,19,11,28,93h 
setpos 10,28 
outputchar ' ',93h,1 
setpos 10,46 
outputchar ' ',93h,1 

mov ah,07h 
int 21h 

mov ah,0 
mov al,03h 
int 10h 
mov ah,4ch 
int 21h 
ret 
exit endp 
;----------------- 
code ends 
;----------------------- 
end start 

mnmacro.asm 功能调用宏文件 

;设置光标位置 
setpos macro top,left 
mov ah,02h 
mov bx,0 
mov dh,top 
mov dl,left 
int 10h 
endm 
;修改菜单属性 
changemenu macro top,left,width,attr 
local chg 
mov dl,left 
chg: 
setpos top,dl 
mov bh,0 
mov ah,08h 
int 10h 
mov bl,attr 
mov cx,1 
mov ah,09h 
int 10h 
inc dl 
mov al,left 
add al,width 
cmp dl,al 
jne chg 
setpos top,left 
endm 
;绘制窗口 
drawwindow macro attr,top,left,bottom,right 
push ax 
push bx 
push cx 
push dx 
mov ah,06h 
mov al,0 
mov bh,attr 
mov ch,top 
mov cl,left 
mov dh,bottom 
mov dl,right 
int 10h 
pop dx 
pop cx 
pop bx 
pop ax 
endm 
;绘制窗口上下边框 
windowtandb macro l,m,r,top,left,width,attr 
setpos top,left 
outputchar l,attr,1 
setpos top,left+1 
outputchar m,attr,width-2 
setpos top,left+width-1 
outputchar r,attr,1 
endm 
;绘制窗口左右边框 
windowlandr macro char,top,left,width,attr 
setpos top,left 
outputchar char,attr,1 
setpos top,left+width-1 
outputchar char,attr,1 
endm 
;输出字符 
outputchar macro char,attr,num 
push ax 
mov bh,0 
mov ah,09h 
mov al,char 
mov bl,attr 
mov cx,num 
int 10h 
pop ax 
endm 
;输出字符串 
outputstr macro str,num,top,left,attr 
push ax 
push bx 
push bp 
push cx 
push dx 
mov ah,13h 
lea bp,str 
mov cx,num 
mov dh,top 
mov dl,left 
mov bh,0 
mov al,1 
mov bl,attr 
int 10h 
pop dx 
pop cx 
pop bp 
pop bx 
pop ax 
endm 
;绘制子菜单 
submenu macro left,menu1,num1,menu2,num2,menu3,num3,width 
local menu 
drawwindow 70h,1,left,5,left+width 
windowtandb 0dah,0c4h,0bfh,1,left,width+1,70h 
mov al,2 
menu: 
windowlandr 0b3h,al,left,width+1,70h 
inc al 
cmp al,5 
jne menu 
windowtandb 0c0h,0c4h,0d9h,5,left,width+1,70h 
outputstr menu1,num1,2,left+2,0fh 
changemenu 2,left+1,8,0fh 
outputstr menu2,num2,3,left+2,70h 
changemenu 3,left+2,1,74h 
outputstr menu3,num3,4,left+2,70h 
changemenu 4,left+2,1,74h 
setpos 2,left+2 
endm 
;读取屏幕内容 
readscr macro left,memory 
local read 
sub ax,ax 
mov si,ax 
read: 
add ah,left 
inc al 
inc si 
mov ch,ah 
setpos al,ch 
mov ah,08h 
mov bh,0 
int 10h 
mov memory[si],al 
mov memory[si+50],ah 
mov ax,si 
mov bl,10 
div bl 
cmp si,50 
jne read 
endm 
;写入屏幕 
writescr macro left,memory 
local read 
sub ax,ax 
mov si,ax 
read: 
add ah,left 
inc al 
inc si 
mov ch,ah 
setpos al,ch 
mov al,memory[si] 
mov ah,memory[si+50] 
mov dl,al 
mov dh,ah 
outputchar dl,dh,1 
mov ax,si 
mov bl,10 
div bl 
cmp si,50 
jne read 
endm 
;设置光标属性 
showcur macro show 
push ax 
push cx 
mov ah,1 
mov cl,0 
mov ch,show 
int 10h 
pop cx 
pop ax 
endm 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -