汇编新手题

来源:百度知道 编辑:UC知道 时间:2024/07/02 06:49:18
设从2000H为首地址的内存中,存放着10个带符号的字节数据,试编出“找出其中最大的数,并存入2000H单元中”的程序
我是新手,麻烦写下每局语句的解释,谢谢!!

.MODEL small
.STACK 100h
.DATA
data1 DB 30h,31h,32h,33h,34h,35h,36h,37h,38h,39h,40h;
.CODE
MOV AX,@data
MOV DS,AX ;set DS to point to the data segment这里没有为什么,就是要告诉电脑你的数据段从哪里开始
MOV BX,OFFSET data1 ;把基准地址设置为data1的地址
MOV CX,0 ;循环初始值为0
LOOP1:
MOV DI,CX ;间接寻址的偏移量赋给di
MOV DX,[BX+DI] ;从内存中读出数据,并存放在DX中
CMP DX,[BX] ;跟第一个数据比较
JL CONTINUE ;如果DX<[BX]跳到continue
MOV [BX],DX ;如果不小于,就把DX的值赋给[BX]
CONTINUE:
INC CX ;循环值递增
CMP CX,10 ;比较是否循环10次
JNE LOOP1 ;如果没有,继续操作
MOV DX,[BX] ;读取第一个数据放在DX中
MOV AH, 2;
INT 21h ;显示DL中的内容
MOV AH,4ch ;DOS terminate program function
INT