当前位置: 代码迷 >> 汇编语言 >> WIN32汇编程序,
  详细解决方案

WIN32汇编程序,

热度:6763   发布时间:2013-02-26 00:00:00.0
WIN32汇编程序,急求助
问题:1到100求和

虽然说这个程序应该很简单,但是两周之内学习汇编这完全不可能啊!!!
目前陷入了把masm32下载安装了之后完全束手无策的状态,连现成的程序都不知道该怎么编译。。。所以求代码&编译步骤的指导,这种临时抱佛脚的行为和容易被鄙视吧。。。但是实在木有办法了,为什么要用汇编呐,好好的C++学了干嘛的!!!

总而言之,求各路神人帮忙,鞠躬致谢~

------解决方案--------------------------------------------------------
怎么重复发贴
;1到100求和的源程序更简单:

assume cs:codeseg,ds:dataseg
dataseg segment
num db 4 dup(0)
dataseg ends
codeseg segment
START:
mov ax,dataseg
mov ds,ax
mov cx,100
xor ax,ax
mov bx,10
xor dx,dx
s:
add ax,cx
loop s
lea si,num+3
step1:
cmp ax,bx
jb over
xor dx,dx
div bx
mov [si],dl
dec si
jmp step1
over:
mov [si],al
mov cx,4
xor si,si
mov ah,02h
dis:
mov dl,[si]
add dl,30h ;
inc si
int 21h
loop dis
mov ah,1
int 21h
mov ah,4ch
int 21h
codeseg ends
END START
 
 

------解决方案--------------------------------------------------------
探讨
问题:1到100求和

虽然说这个程序应该很简单,但是两周之内学习汇编这完全不可能啊!!!
目前陷入了把masm32下载安装了之后完全束手无策的状态,连现成的程序都不知道该怎么编译。。。所以求代码&编译步骤的指导,这种临时抱佛脚的行为和容易被鄙视吧。。。但是实在木有办法了,为什么要用汇编呐,好好的C++学了干嘛的!!!

总而言之,求各路神人帮忙,鞠躬致谢~

------解决方案--------------------------------------------------------
.386
.MODEL FLAT

ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD

INCLUDE io.h
includelib kernel32.lib
cr EQU 0dh ;carriage return character
Lf EQU 0ah ;line feed

.STACK 4096
 
.DATA
sum DWORD 0
prompt1 BYTE "the sum of 1 to 100 is ",0
Allsum BYTE 10 DUP (?)
BYTE cr,Lf,0 

.CODE
_start:
output prompt1
mov eax,0
WhileSum: cmp eax,100
ja EndWhileSum
add sum,eax
inc eax
jmp WhileSum

EndWhileSum:
dtoa Allsum,sum 
output Allsum

INVOKE ExitProcess, 0

PUBLIC _start

我已经在我的机器上编过来了,我偶用的是masm32 这个软件
  相关解决方案