微机原理汇编语言EMU8088/86学习笔记三——内存单元赋值初始化
前言
简单写一下作业里的初始化内存认为。
一、代码
DSEG SEGMENT
MEM DW 00,12H,23H,5H,1H,6H,7H,89H,10H,22H,23H ;10个待排序的数,从小到大排序
DSEG ENDS
CSEG SEGMENT
ASSUME DS:DSEG,CS:CSEG
START:MOV AX,0100H ;将DS定位到DSEG,正常情况是MOV AX,DSEG
MOV DS,AX
LEA DI,MEM
MOV BL,10 ;外循环BL = 10
NEXT1:MOV SI,DI ;SI指向当前要比较的数
MOV CL,BL ;内循环CL = BL
NEXT2:MOV AX,[SI] ;取当前数Ni
ADD SI,2 ;SI指向下一个数 Nj
CMP AX,[SI] ;Ni和Nj比较
JC NEXT3 ;借位了,不需要交换
MOV DX,[SI] ;保存DX = Nj
MOV [SI],AX ;将Nj = Ni
MOV [SI-2],DX ;Ni = DX
NEXT3:DEC CL ;内循环 - 1
JNZ NEXT2: ;未结束,则继续内循环
DEC BL ;外循环 - 1
JNZ NEXT1 ;未结束,继续外循环
CSEG ENDS
运行后在aux下选择memory
可以看到这个时候是乱序的。
RUN完成后,可以看见已经排序成功
总结
看着缘分和心情更新