当前位置:软件学习 > 其它软件 >>

汇编学习---循环结构程序设计

题目要求:
 
编程实现计算1~100的和,并将结果保存在字类型的result 变量中。
 
题目分析:
 
此题为一典型的循环结构设计题目,只需设定一个100的循环变量,依次递减1,然后累加即可。
 
代码实现:
 
 
view plain
data segment 
    rusult dw ? 
data ends 
 
code segment 
     assume cs:code,ds:data 
start: 
     mov ax,data 
     mov ds,ax 
     mov ax,64h 
     mov cx,64h 
     xor bx,bx 
next: 
     add bx,ax 
     dec ax 
     loop next 
     mov rusult,bx 
     mov ax,4c00h 
     int 21h 
code ends 
end start 
 
----------------------------------------------------------------------------------
题目要求:
计算S=1+2*3+3*4+4*5+....+N*(N+1),直到N>200为止;并将结果输出到屏幕显示。
题目分析:
通过设定200的循环变量,先求出其结果。
然后通过设定将结果按16进制输出(主要根据ASCII码的差值)
代码实现:
data segment
    BUF db '1+2*3+3*4+4*5+....+200*201=',0dh,0ah,'$'
    RES db  4 dup(0),0dh,0ah,'$'
data ends
 
 
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov ah,09h
mov dx,offset BUF
int 21h
xor dx,dx
xor ax,ax
mov bl,1
mov cx,200
 NEXT:                               ;NEXT实现1+2*3+3*4+4*5+....+200*201,并将计算结果存在dx寄存器中
          mov al,bl
inc bl
mul bl
add dx,ax 
loop NEXT
sub dx,1                       ;每次对dx中的数据取最后四位,将其转化为ASCII码,并保存在指定的RES单元
mov cx,04
mov di,offset RES
add di,03
NEXT1:
          mov ax,dx
          and ax,000fh
          cmp al,0ah
          jb NEXT2
          add al,07
NEXT2:
        add al,30h
        mov [di],al
        dec di
        push cx
        mov cl,04h
        shr dx,cl
        pop cx
        loop NEXT1
 
       mov ah,09h                            ;输出结果
       mov dx,offset RES
       int 21h
       mov ax,4c00h
       int 21h
code ends
end start
 
代码结果:

\

作者  small_fish__
补充:软件开发 , 其他 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,