算七位同学六门成绩平均值放在该同学成绩后

本文深入探讨了无符号除法指令在汇编语言中的应用,以及如何利用基址变址寻址方式高效处理数组运算。通过具体实例,详细解析了除法指令的使用和数组处理技巧,旨在提升读者对汇编语言的理解和编程能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DATAS SEGMENT
score1 db 01,11,12,13,14,15,16,?
db 02,12,13,14,15,16,17,?
db 03,14,15,16,17,18,19,?
db 04,15,16,17,18,19,20,?
db 05,16,17,18,19,20,21,?
db 06,18,19,20,21,22,23,?
db 07,19,20,21,22,23,24,?
x db 6
;此处输入数据段代码
DATAS ENDS

STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
main proc far
MOV AX,DATAS
MOV DS,AX
mov cx,7
mov bx,0

again:
call average
add bx,8
loop again

MOV AH,4CH
INT 21H

main endp

average proc near
push cx
mov ax,0
mov cx,6
mov si,1
rotate:

add al,[bx][si]
inc si
loop rotate
div x
mov [bx][si],al
pop cx
ret

average endp
CODES ENDS
END START
这次作业中学到了无符号除法指令的使用以及基址变址寻址方式,需要注意以下几点:
1、除法指令被除数放在AX,(DX,AX),(EDX,EAX),分别对应8位,16位,32位除数,结果商分别放入AL,AX,EAX,余数分别放入AH,DX,EDX中
2、 基址变址以及相对基址变址寻址方式经常用于处理数组有关问题,
相对基址变址中位移量可以是立即数,如0012H[BX][SI],
也可以是数组名,如先在缓冲区定义数组
score db 20 dup(?),那么就可以score[bx][si],
还可以预定义变量x EQU 12或者y=12,x[bx][si],y[bx][si]都是有效的
3、debug命令必须先用g命令运行一遍程序才能得到最终结果
调试时必须先运行一遍程序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值