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

题目要求:

编程实现计算1~100的和,并将结果保存在字类型的result 变量中。

题目分析:

此题为一典型的循环结构设计题目,只需设定一个100的循环变量,依次递减1,然后累加即可。

代码实现:

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

代码结果:









































  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值