有关汇编语言程序设计题

来源:百度知道 编辑:UC知道 时间:2024/06/20 11:13:39
1.编写一个程序实现:在BUF开始的存储区中存放30个带符号数,试统计其正数、负数和零的个数,并将统计的个数分别放到PLUS、NEGATIVE、ZERO单元中。
2.若内存BUF开始的单元中存放10个无序的有符号数,试用冒泡法将它们升序排列。
最好有调试过程,谢谢了

你那个数长度没说,假设第一题是字节(8位),第二题是字(16位)。
第一题:
N EQU 30
STAC SEGMENT STACK ; 堆栈段开始
DB 128 DUP(?)
STAC ENDS ;堆栈段结束
DATA SEGMENT ;数据段开始
PLUS DB ?
NEGATIVE DB ?
ZERO DB ?
DATA ENDS ;数据段结束
CODE SEGMENT ;代码段开始
ASSUME CS:CODE,DS:DATA,SS:STAC
START PROC FAR
PUSH DS ;保护PSP段地址
XOR AX,AX
PUSH AX ;保护PSP偏移地址
LEA SI,BUF ;源数组串存放缓冲区首址传递给SI
MOV CX,N ;将源串的字节个数入CX计数器
XOR AX,AX ;AX清零,为AH记录零的个数做准备
XOR BX,BX ;BX清零,为BH和BL分别记录正数和负数做准备
CLD ;设置增量方向标 DF=0
MAIN0: LODSB ;按从低位到高