8086 汇编 1加到100

作者&投稿:穆忠 (若有异议请与网页底部的电邮联系)
使用汇编语言编写程序从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


雁山区15536578693: 8086的编程从1加到100的加法,以及100以内的奇偶加法程序…谢谢! -
不军林可: 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

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网