用汇编,编写程序计算1+2+3+4+........+100并将结果显示在屏幕上

急啊

code segment
assume cs:code
start:
mov ax,code
mov ds,ax
lea dx,mes
mov ah,9
int 21h
xor ax,ax
mov cx,100
add ax,cx
loop $-2;当前地址减去2就是上一条指令
xor cx,cx
mov bx,10
Q0:
xor dx,dx
div bx
or dx,0e30h
inc cx
push dx
cmp ax,0
jnz Q0
Q1:pop ax
int 10h
loop Q1
mov ah,1
int 21h
mov ah,4ch
int 21h
mes db '1+2+3+4+...+100=$'
code ends
end start
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-06-15
code segment
assume cs:code
start:
mov ax,code
mov ds,ax
xor ax,ax
mov cx,100
add ax,cx
loop $-2//当前地址减去2就是上一条指令
mov ax,4c00h
int 21h
code ends
end start
这是我认为的最简单的一种方式,其实还有其它的做法,这也是我在网上看到的,你看看吧!

编制程序计算式子1+2+3+……+99+100的结果汇编语言
当前地址减去2就是上一条指令 ; 此即循环计算 100+99+...+1 xor cx,cx ; cx置0 mov bx,10 ; bx置10,做10位数除法的除数Q0: xor dx,dx ;dx置0 div bx ; (dx):(ax)组成的数,除以(bx) ; (ax)是商,(dx)是余数,即被除数的个位数 or dx,...

...程序设计》编程题:编写程序实现sum=1+2+…+100,在不重新定义变量的前...
;2进制打印到屏幕上 print:mov ah,2 mov dl,'0'test bx,1000000000000000b jz zero mov dl,'1'zero:int 21h shl bx,1 loop print mov dl,'b'int 21h ;结果为:0001001110111010b mov ah,4ch int 21h

8088汇编语言,计算S=1+2+3+……+50,并将结果由屏幕上显示出来。
dseg segment msg db '1+2+3+...+50=$'dseg endsassume cs:cseg, ds:dsegcseg segmentstart: mov ax, dseg mov ds, ax lea dx, msg mov ah,9 int 21h mov cx, 50 mov ax, 0 mov bx, 1loop0: add ax, bx inc bx loop loop0 call print mov ax,4c00h...

利用汇编语言:编写累加程序(1——10),结果显示屏幕上
data segment buff db 1,2,3,4,5,6,7,8,9,10 sum db 0 data ends stack segment stack dw 16 dup(0)stack ends code segment assume cs:code,ds:data,es:data,ss:stack start:mov ax,data mov ds,ax mov ax,stack mov ss,ax mov sp,32 mov bx,offset buff mov cx,10 mov ax...

如何使用汇编语言程序设计方法在屏幕上输出汉字?
3、编写一个输出一个汉字图形字符的子程序,有了2的基础这一步显得比较容易,实现 如下: ;在图形模式下显示一个汉字 ;输入参数: ; BX=x0 初始左上角X坐标 ; AX=y0 初始左上角Y坐标 ; CX=color 其实只是cl表示颜色 ; ds:si=buff 字符点阵信息首地址 ;返回值:无 DispZhC proc push si push bp push ...

汇编编写一个实现从键盘输入两个两位十进制数,相加后,把结果输出到屏幕...
int n=1,sign=1;while((temp>1e-5)||(temp<-1e-5)){ n++,fac*=n,den*=x;n++,fac*=n,den*=x;temp=den\/fac;sign=-sign;result=sign>0?result+temp:result-temp;} return result;} double cosx(double x){ x=1.57079-x;return sinx(x);} main(){ double a,b,c;scanf("...

如何快速看懂汇编语言程序?
首先得了解汇编指令吧,其次得用机器的逻辑思考问题,明白其中的存储、累加、判断、转移等概念。比如,1+2+...+100这样的问题,虽然我们可以给出公式计算,但机器并不知道,它只能知道,而且只能每次做一个加法,而且鉴于CPU的架构不能存所有的这些数值-如果这些数量不定的话更复杂,比如这些数是放在一...

编程求1~400中所有奇数之和,结果以十六进制数据显示到屏幕上。
SIZE A SAL CX,1 NEXT:MOV AL,4 MOV DX,0 LOP: SHL BX,1 RCL DX,1 DEC AL JNE LOP CMP DL,10 JAE CHAR ADD DL,30H JMP DISP CHAR: ADD DL,37H DISP:MOV AH,2 INT 21H LOOP NEXT ;LEA DX,C MOV AH,9 INT 21H MOV AH,4CH INT 21H CODEENDS END START ...

...凌乱的字母按从小到大的顺序排列,并将排好的字串显示在屏幕上...
DATA DB 'bcda$';此处输入数据段代码 DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATAS MOV DS,AX MOV SI,1 LOP1:MOV DI,SI INC DI MOV AL,DATA[SI-1]LOP2:CMP AL,DATA[DI-1]JBE LOP3 ...

编程实现sum=1+2+3+…+N,N=学号最后两位+20.要求从汇编语言程序调用C...
;添加你的代码xorax,axxorbx,bxmovcx,100l1:incbxaddax,bxloopl1movsum,axmovbx,axmovcx,16;2进制打印到屏幕上print:movah,2movdl,'0'testbx,1000000000000000bjzzeromovdl,'1'zero:int21hshlbx,1loopprintmovdl,'b'int21h;结果为:0001001110111010bmovah,4chint21h ...

相似回答