汇编语言,关于循环的程序设计

1、有一个字数组a,编程将其复制到b数据区。

data segment 
     a dw 1,2,3,4,5
     b dw ?,?,?,?,?
data ends
stack segment para stack
     dw 10h dup(0)
stack ends
code segment
     assume cs:code,ds:data,ss:stack
start:
     mov ax,data
     mov ds,ax
     mov si,0
     mov cx,5
again: 
     mov bx,a[si];
     mov b[si],bx;
          add si,2
     loop again
     mov ax,4ch
     int 21h
code ends
end start


2、有a、b是2个字节数据区,其长度都相同,编程将a、b数据区对应元素作为字的高、低两字节存入字数据区c中对应位置。

 data segment 
     a db 1,2,3,4
     b db 5,6,7,8
     c dw ?,?,?,?
data ends
stack segment para stack
     db 10h dup(0)
stack ends
code segment
     assume cs:code,ds:data,ss:stack
start:
     mov ax,data
     mov ds,ax
     mov si,0
     mov di,0
     mov cx,4
again: 
     mov bh,a[si];
     mov bl,b[si];
     mov c[di],bx;
          inc si
     add di,2
     loop again
     mov ax,4ch
     int 21h
code ends
end start


3、编程求字数据区a中所有正数之和,结果存于字x中。

data segment 
     a dw 1,-2,5,4,-5
     x dw ?
     count equ x-a;count
     data ends
stack segment para stack
     db 10h dup(0)
stack ends
code segment
     assume cs:code,ds:data,ss:stack
start:
     mov ax,data
     mov ds,ax
     mov bx,0
     mov si,-2;
          mov cx,count
     shr cx,1
 lop:
     add si,2
     mov ax,a[si];
          cmp ax,0
     jng ee;
          add x,ax    
  ee:
     loop lop
     mov ax,4ch
     int 21h   
code ends
end start





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值