用汇编语言实现1+2+3+...+100=?这中间相加的和超过255了,怎么办?

2024-12-16 01:26:08
推荐回答(3个)
回答1:

用最本的办法,也是很方便的方法,只是占用内存有点大,给你个例程:
MAIN:
MOV R7,#0 ;要加的数
MOV DPH,#00H
MOV DPL,#00H ;数据指针清零
K1:
INC R7
MOV R6,R7
INC R6 ;因为单片机存在0,所有必须加1
LCALL K2
CJNE R7,#101,MAIN1 ;因为是100个数,从1开始,不是从0开始,所以要101个数
LJMP $
K2:
DJNZ R6,K2
RET
K3:
INC DPTR ;R6每减1,计数器加1
JMP K2 ;返回继续减

顺便慷慨的说一声,我不知道你要的汇编语音是电脑的还是单片机,我给你的答案是单片机的汇编语言,如果是电脑语音也可以用同一个方法,用一个16位的计数器做累加就可以了

回答2:

mov cx,255
mov ax,0
next:
add ax,cx
loop next
; 和在AX中,AX可保存超过255的数

回答3:

用16位寄存器或两个字节保存