微机原理编写完整汇编程序,将内存中10个有符号数求和,结果放入SUM单元(类型DW)。有符号数类型DB.

2025-02-24 20:09:06
推荐回答(2个)
回答1:

DATA SEGMENT
TABLE1 DB 0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH ;这个你自己改吧。
SUM DW ?
ASCC DB 10 DUP (20h) ,'$'
COUNT DW 10
DATA ENDS
;
CODE SEGMENT
ASSUME CS:CODE ,DS:DATA,ES:DATA
START: MOV AX,DATA
MOV DS,AX
MOV ES,AX
LEA SI,TABLE1
MOV CX,10
XOR AX,AX
XOR BX,BX
CBW
NEXT: MOV AL,[SI]
CBW
ADD BX,AX
INC SI
LOOP NEXT
MOV SUM,BX
;以下是显示部分
LEA SI,sum
MOV BX,10 ;除数
LEA DI,ASCC+9 ;放入要转换的数
MOV AX,[SI]
AGAIN: XOR DX,DX
AND Ax,AX
JNS NEXT4
NEG AX
NEXT4: DIV BX
ADD DL,30H
MOV [DI],DL
XOR DX,DX
DEC DI
INC COUNT
AND AX,AX
JZ NEXT5
JMP NEXT4
NEXT5:
MOV AX,[SI]
CMP AX,8000H
JNC NEXT6
MOV AL,2BH
MOV [DI],AL
JMP NEXT7
NEXT6: MOV AL,'-'
MOV [DI],AL
NEXT7: LEA DX,ASCC
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START

回答2:

嘿嘿 这个不难啊 就是一个循环程序 不断进行有符号数的累加 一共累加10次 结果保存在SUM单元。
在数据段 定义10个有符号数(数类型DB)、定义一个变量SUM(有符号数类型DW)
具体指导 可以通过百度私信 见百度知道的右上角。

呵呵 满意 就选满意回答