| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 715 人关注过本帖
标题:请教大家,关于结果输出(显示)的问题
只看楼主 加入收藏
井盖
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-6-8
结帖率:0
收藏
已结贴  问题点数:20 回复次数:5 
请教大家,关于结果输出(显示)的问题
题目:编写一个计算从1加到100的和的程序,并将结果在屏幕上显示出来。
程序:
.386                        
.model flat,c               
extern printf:proc
extern scanf: proc

public c unsere_asm_funktion  

.data                        

start:
mov eax,0                    
mov ebx,1                     
mov ecx,100                  
next:                        
add eax,ebx                  
inc ebx                       
loop next                     
mov ah,4ch                    
ret                           
unsere_asm_funktion endp      
end                          
问题:计算正确,但是结果无法在屏幕(黑色的对话框)上显示(显示10进制结果)。
缺少显示结果的语句,但是我实在是搞不定了。
我是初次接触汇编,无编程基础。
诚心求教,先谢谢大家了。
搜索更多相关主题的帖子: 结果 输出 
2010-06-08 06:02
井盖
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-6-8
收藏
得分:0 
为什么大家都只看不回帖呢?是不是我问题说的不明白还是。。。。
伤心。
我是真心求教大家的。
2010-06-12 16:47
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:10 
以下是引用井盖在2010-6-12 16:47:37的发言:

为什么大家都只看不回帖呢?是不是我问题说的不明白还是。。。。
伤心。
我是真心求教大家的。
我是不会~
2010-06-12 18:48
Mata_Fu
Rank: 2
等 级:论坛游民
帖 子:72
专家分:10
注 册:2009-3-25
收藏
得分:10 
哈,循环转~
程序代码:
Data segment
   Msg1 db "Please input the number of students:$"
   Num db 0
   EnMsg db 0ah,0dh,'$'
   Msg2 db "Please input the grade of each students:$"
   Msg3 db "The average grade of these students is:$"
   avg db 0
   ascavg db 0,0,'$'
Data ends

Stack segment para stack
   db 20h dup(0)
Stack ends

code segment
       Assume Cs:code,Ss:stack,ds:Data

Start: mov ax,data
       mov ds,ax
       lea dx,Msg1
       mov ah,09h
       int 21h
       Call Numproc
       mov num,bl
       lea dx,EnMsg
       mov ah,09h
       int 21h
       lea dx,Msg2
       mov ah,09h
       int 21h
       call Avgproc
       call bta
       mov ah,4ch
       int 21h
Numproc proc
       push ax
       push cx
       push dx
       lea dx,EnMsg
       mov ah,09h
       int 21h
       mov bl,0
lop1:  mov ah,01h
       int 21h
       cmp al,0dh
       jz lop2
       cmp al,0dh
       jl lop1
       cmp al,'9'
       ja lop1
       sub al,30h
       mov cl,al
       mov al,bl
       mov ch,10
       mul ch
       mov bl,al
       add bl,cl
       jmp lop1
lop2:  pop dx
       pop cx
       pop ax
       ret
Numproc endp

Avgproc proc
       push ax
       push cx
       xor dx,dx
       mov cl,num
lop3:  call Numproc
       xor ax,ax
       mov al,bl
       add ax,dx
       Div num
       add avg,al
       xor dx,dx
       mov dl,ah
       sub cl,1
       jnz lop3
       pop ax
       pop cx
       ret
Avgproc endp

bta proc
       push ax
       push bx
       xor ax,ax
       mov al,avg
       mov bl,10
       div bl
       add ah,30h
       add al,30h
       mov ascavg,al
       mov ascavg+1,ah
       lea dx,EnMsg
       mov ah,09h
       int 21h
       lea dx,ascavg
       mov ah,09h
       int 21h
       pop bx
       pop ax
       ret
bta endp
code ends
   end start
2010-06-15 23:05
Mata_Fu
Rank: 2
等 级:论坛游民
帖 子:72
专家分:10
注 册:2009-3-25
收藏
得分:0 
上面是一个求平均分再输出的例子,bta是输出转化,你好好看看吧~
2010-06-15 23:06
wuliqv
Rank: 1
等 级:新手上路
帖 子:6
专家分:6
注 册:2008-3-22
收藏
得分:0 
一个简单的例子

.386
.model flat,stdcall
option casemap:none

include        windows.inc
include        kernel32.inc
includelib    kernel32.lib
include        msvcrt.inc
includelib    msvcrt.lib


.data
szFormat        db    '结果:%d',0

.code

start:   
    mov eax,0
    mov ebx,1
    mov ecx,100

next:
    add eax,ebx
    inc ebx
    loop next
   
    invoke crt_printf, addr szFormat, eax


    invoke ExitProcess,NULL
end start
2010-06-21 20:14
快速回复:请教大家,关于结果输出(显示)的问题
数据加载中...
 
   



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

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