| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 844 人关注过本帖
标题:闪烁程序求思路
只看楼主 加入收藏
阴阳
Rank: 4
等 级:业余侠客
帖 子:102
专家分:297
注 册:2012-4-7
结帖率:100%
收藏
已结贴  问题点数:40 回复次数:10 
闪烁程序求思路
我想用汇编编一个能然字符闪烁的程序,但是我无奈了,好久都没什么思路,大家有什么好想法,给我说一说,不胜感激!谢谢
搜索更多相关主题的帖子: 不胜感激 
2012-04-17 13:53
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:10 
目标明确么

什么环境的汇编啊 假设是16位汇编的 去查中断或书上的相应章节 有实现方法

合适的关键字搜索 可以找到实例代码

学而不思则罔 思而不学则殆 空想是想不出来的


[ 本帖最后由 zklhp 于 2012-4-17 14:17 编辑 ]
2012-04-17 14:14
马甲1号
Rank: 5Rank: 5
等 级:职业侠客
帖 子:68
专家分:312
注 册:2011-4-4
收藏
得分:20 
that's easy
给你下好了

Demo.asm
程序代码:
.386
.model flat, stdcall
option casemap:none

include windows.inc
include user32.inc
include kernel32.inc
include gdi32.inc

includelib user32.lib
includelib kernel32.lib
includelib gdi32.lib

DlgProc    proto    :HWND, :UINT, :WPARAM, :LPARAM

.data
hInst        dd    ?
szString    db    'hello world', 0
flag        dd    ?
col        dw    ?

.const
DLG_DEMO    equ    101

.code
start:
    invoke    GetModuleHandle, NULL
    mov    hInst, eax
    invoke    DialogBoxParam, hInst, DLG_DEMO, NULL, addr DlgProc, NULL
    invoke    ExitProcess, NULL

;------------------------------------------
DlgProc    proc    hwnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
    local    ps:PAINTSTRUCT
    local    hdc:HDC

    mov    eax, uMsg
    .if    eax ==    WM_TIMER
        not    flag
        xor    eax, eax
        .if    flag ==    TRUE
            mov dword ptr eax, 00ff0000h
        .else
            mov dword ptr eax, 00ffffffh
        .endif
        mov    dword ptr col, eax
        invoke    InvalidateRect, hwnd, NULL, TRUE
    .elseif    eax ==    WM_PAINT
        invoke    BeginPaint, hwnd, addr ps
        mov    hdc, eax
        invoke    SetBkMode, hdc, TRANSPARENT
        invoke    SetTextColor, hdc, col
        invoke    lstrlen, offset szString
        invoke    TextOut, hdc, 10, 10, offset szString, eax
        invoke    EndPaint, hwnd, addr ps
    .elseif    eax ==    WM_INITDIALOG
        mov    flag, TRUE
    .elseif    eax ==    WM_CLOSE
        invoke    EndDialog, hwnd, 0
    .elseif eax ==    WM_COMMAND
        mov    eax, wParam
        .if    al ==    102
            invoke    SetTimer, hwnd, 1, 100, NULL
        .elseif al ==    103
            invoke    KillTimer, hwnd, 1
        .endif
       
    .else
        mov    eax, FALSE
        ret
    .endif
   
    mov    eax, FALSE
    ret
DlgProc    endp
;------------------------------------------
    end    start


Demo.rc
程序代码:
#define DLG_DEMO 101
#define IDC_BTN1 102
#define IDC_BTN2 103
DLG_DEMO DIALOGEX 6,6,194,106
CAPTION "Demo"
FONT 8,"MS Sans Serif"
STYLE 0x10CF0800
EXSTYLE 0x00000000
BEGIN
    PUSHBUTTON "Start",IDC_BTN1,80,80,50,15,NOT 0x00820000|0x50010000,0x00000000
    PUSHBUTTON "End",IDC_BTN2,140,80,50,15,NOT 0x00820000|0x50010000,0x00000000
END


makefile.txt
程序代码:
EXE = Demo.exe
OBJS = Demo.obj
RES = Demo.res

LINK_FLAG = /subsystem:windows
ML_FLAG = /c /coff

$(EXE): $(OBJS) $(RES)
    link $(LINK_FLAG) /out:$(EXE) $(OBJS) $(RES)
.asm.obj:
    ml $(ML_FLAG) $<
.rc.res:
    rc $<
clean:
    del *.obj
    del *.res


Compile.bat
程序代码:
@echo off
set path=%path%;d:\radasm\masm32\bin
set include=d:\radasm\masm32\include
set lib=d:\radasm\masm32\lib

nmake makefile.txt

pause

del *.obj
del *.res


Demo.rar (2.67 KB)



???????
2012-04-18 11:24
阴阳
Rank: 4
等 级:业余侠客
帖 子:102
专家分:297
注 册:2012-4-7
收藏
得分:0 
回复 2楼 zklhp
我们学的是微机原理,汇编学了一点,做完实验后,老师说可以试着编一个移动闪烁的程序,鉴于刚学完dos及bios的一些功能调用,闪烁我想的是用循环开始先输出字符串然后在用空格覆盖,不知行不?

一阴一阳之谓道!
2012-04-18 13:50
阴阳
Rank: 4
等 级:业余侠客
帖 子:102
专家分:297
注 册:2012-4-7
收藏
得分:0 
回复 3楼 马甲1号
大神啊,我看不懂这个啊,能不能用在简单一点儿的指令写一下!谢谢

一阴一阳之谓道!
2012-04-18 13:52
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
因为他给的是32位的windows宏汇编 你学的是16位汇编 看不懂很正常啦

我不会16位的帮补了你 呵呵
2012-04-18 14:48
一只小咩咩
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-4-18
收藏
得分:0 
80x25字符模式自带闪烁功能,
2012-04-18 18:27
阴阳
Rank: 4
等 级:业余侠客
帖 子:102
专家分:297
注 册:2012-4-7
收藏
得分:0 
回复 7楼 一只小咩咩
8086有吗?

一阴一阳之谓道!
2012-04-18 21:45
阴阳
Rank: 4
等 级:业余侠客
帖 子:102
专家分:297
注 册:2012-4-7
收藏
得分:0 
回复 6楼 zklhp
哦,那还是谢谢了!

一阴一阳之谓道!
2012-04-18 21:46
bingghost
Rank: 2
等 级:论坛游民
帖 子:70
专家分:85
注 册:2012-1-4
收藏
得分:10 
以下是引用阴阳在2012-4-18 13:50:56的发言:

我们学的是微机原理,汇编学了一点,做完实验后,老师说可以试着编一个移动闪烁的程序,鉴于刚学完dos及bios的一些功能调用,闪烁我想的是用循环开始先输出字符串然后在用空格覆盖,不知行不?
闪烁  是彩灯闪烁 还是?
以前上微机接口的时候  编过彩灯闪烁的

8255-8253-8259

软延时的话   只用8255就可以了
硬延时  就要用到8253
为了响应中断  那就得用8259了

简单编写8255就okay了
关键还是几种初始化方式

我的头像就是我的女神 可惜我的女神已经死了 所以我的心也死了
2012-04-21 11:31
快速回复:闪烁程序求思路
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017495 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved