|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
;默认采用ML6.11汇编程序
DATAS SEGMENT
;此处输入数据段代码
;定义参与计算3次方的8个整数
DW 1,2,3,4,5,6,7,8
;定义存放8个整数计算结果的位置
DD 8 DUP(0)
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
;定义存放IP的栈2个字节
DB 2 DUP(0)
STACKS ENDS
CODES SEGMENT
;声明代码段,数据段,栈段
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
;此处输入代码段代码
;下两行关联数据段
MOV AX,DATAS
MOV DS,AX
;下三行关联栈段设置SP栈顶指针
MOV AX,STACKS
MOV SS,AX
MOV SP,2
;下6行通用寄存器初始化
MOV AX,0
MOV DX,0
;BX为子程序JSN3传递N
MOV BX,0
;循环8次
MOV CX,8
;初始化计算数偏移地址
MOV SI,0
;初始化结果偏移地址
MOV DI,16
S:
;第N个数给BX
MOV BX,[SI]
;调用计算3次方子程序
CALL JSN3
;存入低16位结果到指定单元
MOV [DI],AX
;存入高16位结果到指定单元
MOV [DI+2],DX
;更新下下个N的位置
ADD SI,2
;更新放置下个N计算结果的位置
ADD DI,4
;CX-1如果CX不等于0跳转到S处,如果CX等于0结束循环
LOOP S
;正常退出
MOV AX,4C00H
INT 21H
;计算3次方子程序
JSN3:
;N给AX
MOV AX,BX
;N*N
MUL BX
;(N*N)*N
MUL BX
;返回
RET
CODES ENDS
END START |
|