霍尔果斯市领导排名:如何用汇编语言(8086)实现这2个简单程序?

来源:百度文库 编辑:中科新闻网 时间:2024/04/28 01:35:39
有两个汇编习题不会,请个位帮忙:
1。 在内存BUFF单元中定义有10个16位数,试寻找其中的最大、最小值并分别放到指定的单元MAX和MIN中。
2。在BUFF开始的存储区中存放30个带符号数,试统计起正数、负数、零的个数,并将个数分别放到A1、A2、A3单元中。

谢谢个位的解答!

1。 在内存BUFF单元中定义有10个16位数,试寻找其中的最大、最小值并分别放到指定的单元MAX和MIN中。

SSEG SEGMENT STACK
STK DB 20 DUP(?)
SSEG ENDS
DSEG SEGMENT

BUFF DW -5,56,45,-96,5,2,457,8,7,-8
MAX DW ?
MIN DW ?
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG,SS:SSEG
START: MOV AX,DSEG
MOV DS,AX

LEA BX,BUFF
MOV CX,10
MOV AX,[BX]
MOV MIN,AX
MOV MAX,AX
INC BX
DEC CX
AGAIN: MOV AX,[BX]
CMP AX,MIN
JE NEXT
JA A1
MOV MIN,AX
JMP NEXT
A1: CMP AX,MAX
JB NEXT
MOV MAX,AX
NEXT: INC BX
DEC CX
JNZ AGAIN

MOV AH,4CH
INT 21H

CSEG ENDS
END START

2。在BUFF开始的存储区中存放30个带符号数,试统计起正数、负数、零的个数,并将个数分别放到A1、A2、A3单元中。

SSEG SEGMENT STACK
STK DB 20 DUP(?)
SSEG ENDS
DSEG SEGMENT

BUFF DB ………………;省略掉
A1 DB ? ;正数
A2 DB ? ;负数
A3 DB ? ;零;
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG,SS:SSEG
START: MOV AX,DSEG
MOV DS,AX

LEA BX,BUFF
MOV DI,30
MOV CX,0
MOV DL,0

L1: MOV AL,[BX]
CMP AL,0
JE L2
JG L3
INC CL
JMP NEXT
L2: INC DL
JMP NEXT
L3: INC CH

NEXT: INC BX
DEC DI
JNZ L1

MOV A1,CH
MOV A2,CL
MOV A3,DL

MOV AH,4CH
INT 21H

CSEG ENDS
END START

给我200分 我给你做

你再提个问题 给我发个消息 让我去回答 给我积分后

我给你做