| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1182 人关注过本帖
标题:帮我改一段程序
只看楼主 加入收藏
toyix
Rank: 1
等 级:新手上路
帖 子:112
专家分:0
注 册:2008-7-14
结帖率:50%
收藏
 问题点数:0 回复次数:3 
帮我改一段程序
.386
.model flat,stdcall
option casemap:none
include \masmplus\include\windows.inc
include \masmplus\include\kernel32.inc
includelib \masmplus\lib\kernel32.lib
include \masmplus\include\user32.inc
includelib \masmplus\lib\user32.lib

.data
MsgBoxCaption  db "结果!",0
MsgBoxText    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
.code
start:
mov  al,97h
call  ShowAL


invoke MessageBox, NULL, addr MsgBoxText, addr MsgBoxCaption, MB_YESNOCANCEL
invoke ExitProcess, NULL

ShowAL proc
        mov  dl,al      ;保存AL
        mov  cl,04      
        shr  al,cl      ;AL高4位移至低4位
        mov  cx,02h      ;循环2次
        xor  ebx,ebx
        mov  esi,offset MsgBoxText

Low4bit:
cmp  al,09
        jbe  larger    ;低4位超过9
        add  al,07
larger:   
add  al,30h

        mov  [esi],al
        inc  esi      
        
        mov  al,dl      ;恢复保存
          and  al,0Fh
          loop  Low4bit
        
        ret
ShowAL  endp

end start
显示AL中的数值,但是程序在运行期会出现错误
搜索更多相关主题的帖子: include windows masmplus lib 
2008-07-14 14:48
ONEPROBLEM
Rank: 6Rank: 6
来 自:广西 南宁
等 级:贵宾
威 望:21
帖 子:1569
专家分:349
注 册:2008-7-11
收藏
得分:0 
.386
.model flat,stdcall
option casemap:none

include      windows.inc
include      kernel32.inc
includelib   kernel32.lib
include      user32.inc
includelib   user32.lib

              .data
MsgBoxCaption  db "结果!",0
MsgBoxText     db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

              .code
start:
        mov   al,97h
        call  ShowAL


        invoke MessageBox, NULL, addr MsgBoxText, addr MsgBoxCaption, MB_YESNOCANCEL
        invoke ExitProcess, NULL

ShowAL proc
        mov  dl,al      ;保存AL
        mov  cl,04      
         shr  al,cl      ;AL高4位移至低4位
         xor  ebx,ebx
         mov  esi,offset MsgBoxText

        .while  ebx < 2
             add al,30h
             mov [esi+ebx],al
             inc  ebx
             mov al,dl
             and al,0fh
 
        .endw
         ret
ShowAL   endp

end start
;===========================================
这是我的修改,我不用它的循环了,自己搞了一个:
.while   x<n
    ;do something
    inc  x
.endw

[[it] 本帖最后由 ONEPROBLEM 于 2008-7-14 15:16 编辑 [/it]]
2008-07-14 15:11
magicroller
Rank: 1
来 自:安徽
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-3-13
收藏
得分:0 
不用中断调用就可以  显示数据在屏幕上吗?
2008-07-19 14:55
toyix
Rank: 1
等 级:新手上路
帖 子:112
专家分:0
注 册:2008-7-14
收藏
得分:0 
程序只要对了就行 了
2008-07-25 20:44
快速回复:帮我改一段程序
数据加载中...
 
   



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

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