8086 汇编 1加到100
DATA SEGMENT
SUM DW ?
DATA ENDS
STACK SEGMENT STACK
DB 200 DUP(0)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE , DS:DATA , SS:STACK
START :
MOV AX , DATA A
MOV DS , AX
MOV AX , 0
MOV CX , 100
LOP1 :
ADD AX , CX
LOOP LOP1
MOV SUM , AX
MOV AH , 4CH
INT 21H
CODE ENDS
END START
如果你不嫌麻烦把1,2,3,4,.......,100 这一百个数补齐,?号前加空格再修改倒数第二行LODE ENDS为CODE ENDS的话,你的程序编译通过,但我告诉你你的程序还是有问题,你定义的BUFF存放1到~100是字节型的单元,但你加的时候ADD AX,[SI] 取的数是两个单元的字,所以原来的数就不再是1到~100了,所以你还要改,把BUFF定义为DW字,后面取数时后移不是INC SI而是ADD SI,2取一个字大小的数据,但我想说其实最主要的问题是你的程序根本就没必要写这么多。。。
真正实现1加到100只需:
MOV CX,100
NEXT:
ADD SUM,CX;定义SUM=0
LOOP NEXT
完整程序加输出:
;程序实现功能:从1到100进行累加,并把计算结果保存在[SUM]单元里
DATAS SEGMENT
SUM DW 0
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV CX,100
NEXT:
ADD SUM,CX
LOOP NEXT
CALL DISPLAY
MOV AH,4CH
INT 21H
DISPLAY PROC NEAR
;以下代码段实现输出正整型数
;**************************************************
MOV AX,SUM
MOV BX,10
CONTINUE:
CWD
DIV BX
PUSH DX
INC CX
CMP AX,0
JNZ CONTINUE
NEXT1:
POP DX
AND DX,0FFH
ADD DL,30H
MOV AH,02
INT 21H
LOOP NEXT1
;**************************************************
RET
DISPLAY ENDP
CODES ENDS
END START
data segment
sum dw ?
str db 0,0,0,0,'$'
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
xor ax,ax
mov cx,100
next: add ax,cx
loop next ;循环计算1到100的和,和放在ax中
;下面是显示结果
xor dx,dx
mov bx,1000
div bx
or al,30h
mov str,al
mov ax,dx
mov bl,100
div bl
or al,30h
mov str+1,al
mov al,ah
xor ah,ah
mov bl,10
div bl
or ax,3030h
mov str+2,al
mov str+3,ah
mov dx,offset str
mov ah,9
int 21h
mov ax,4c00h
int 21h
code ends
end start
winds blow clouds have gone ,Wholesale sunglasses
miss the horizon broken only quietly dispersed
Rainbow
know if the cloud forest of thorns pierced
skirts
wind delayed the pace of love to slowly replace the pain of heartache
who sigh
winds blow clouds have gone
sad cry of the beach ,Maccosmetics, leaving only the waves slowly receded
If the clouds know
Frostsaber mountain wind tore the hearts of love
cooling efforts forward
who gradually cover the ice
sad
wind clouds have gone through
Lay sleepless
not put out
gone with the wind
clouds know ... ...
李琳~~我来学习鸟
5050
5050
不军林可: DATA SEGMENTSUM1_100 DW 0 ;保存1加到100SUMEVEN DW 0 ;100以内的偶数和SUMODD DW 0 ;100以内的奇数和 DATA ENDS CODE SEGMENTASSUME DS:DATA,CS:CODE START:MOV AX,DATAMOV DS,AXMOV CX,1 ...
雁山区15536578693: 请问用8086汇编语言编写程序计算1+2+……+100 怎么写??求代码,谢谢 - ?
不军林可: DSEG SEGMENT RESULT DW 0 DSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG START: MOV AX,DSEG MOV DS,AX ; XOR AX,AXMOV CX,100 C1: ADD AX,CX LOOP C1 ; MOV RESULT,AX ; MOV AX,4C00H INT 21H CSEG ENDSEND START
雁山区15536578693: 汇编语言编制程序,实现从1加到100 - ?
不军林可: 最简短的完整程序: CODE SEGMENTASSUME CS:CODE START: ;---------------------------------MOV AX, 0MOV CX, 100 S: ADD AX, CXLOOP S ;-----基本的,就上面四行----MOV AH, 4CHINT 21H CODE ENDSEND START
雁山区15536578693: 单片机汇编语言1加到100怎么编? - ?
不军林可: org 0mov r0,#100 ;共100个数 mov a,#0 ;累加结果先清0 mov r1,#1 ;第1个数为1loop: add a,r1 ;把数累加起来 inc r1 ;下一个数 djnz r0,loop;共100个数,未完转 LOOP循环sjmp $ ;完成 end
雁山区15536578693: 给我找用8086汇编写在ax寄存器中存放1到100的和用循环求和值,急要??? - ?
不军林可: MOV AX,1 MOV BX,2 MOV CX,99 L1:ADD AX,BX INC BX DEC CX JNZ L1 HLT
雁山区15536578693: 如何用汇编语言写一个从1加到100的程序 - ?
不军林可: 参考如下的代码:CODE SEGMENT ASSUME CS:CODE START:;--------------------------------- MOV AX, 0 MOV CX, 100 S: ADD AX, CX LOOP S;-----基本的,就上面四行---- MOV AH, 4CH INT 21H CODE ENDS END START
雁山区15536578693: 如何用汇编,编1+至100最后求和的程序? - ?
不军林可: DSEG SEGMENT RESULT DW ?;存放和 DSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG START: MOV AX,DSEG MOV DS,AX MOV AX,1;从1开始zhidao加版 MOV RESULT,0;和的初值赋权0 MOV CX,100;循环100次 NEXT: ADD RESULT,AX;每次向和中累加AX INC AX;然后AX加1 LOOP NEXT MOV AX,4C00H;结束程序 INT 21H CSEG ENDS END START
雁山区15536578693: 8086程序设计100以后偶数相加 和1加到100 还有100以内的奇数相加设计程序 谢谢大神们 - ?
不军林可: 1+100=(100+1)*100÷2=5050
雁山区15536578693: 如何用汇编语言写一个从1加到100的程序??
不军林可: 你说的应该是dos平台,edit是dos下的记事本.就用windowsnbsp;的记事本,或者任何文本编辑器写好代码,保存为*.asm格式就可以了.主要程序段大概就是下面这样,结果放在ax,cx是循环用.movnbsp;ax,0movnbsp;cx,0loop1:addnbsp;ax,cxincnbsp;cxcmpnbsp;cx,101jnznbsp;loop1
雁山区15536578693: 用汇编语言编写程序:从自然数1加到100,并画出流程图.求解答.谢谢 - ?
不军林可: data segmentx db 1 data ends code segmentassume cs:code,ds:data start:mov ax,datamov ds,axmov ax,0mov cx, 100 s:add ax,xadd x,1 loop s mov ax,4c00h int 21h code ends end start