程序解释(微型计算机8086的通用指令)
发布网友
发布时间:2022-04-26 05:31
我来回答
共2个回答
热心网友
时间:2022-06-21 05:18
OFFSET BLOCK是指在前面数据段定义的名为BLOCK的一段数据的起始便宜地址
通常在前面可以看见类似如下的代码
DATA SEGMENT PARA PUBLIC 'DATA'
BLOCK DB **H,**H,**H,**H
DATA ENDS
MOV BX,OFFSET BLOCK就是把BLOCK的第一个地址存入了BX
2.MOV A,[BX]就是把这个地址所指向的内容存入AX
由于存的是AX是字型,所以是讲BLOCK的前两个字节的内容以字的形式存入AX
3.INC BX;INC BX。由于是字,所以偏移量应加2
3.MOV CX,99
定义了程序循环比较次数不超过99.由后面的DEC CX;JNZ AGAIN配合使用
4.CMP AX,[BX]。将偏移量改变后的内容和改变之前已经移入AX的前一个数进行比较。
5.JG 为判断。如果前一个值大于后一个值,则跳转到NEXT。NEXT处为地址再次加2,如果没有超过99次,就拿前一个数比较再下一个数。
如果前一个值不大于后一个值,则将当前值存入AX,然后地址再次加2,如果没有超过99次,就拿这个数比较下一个数。
6.跳转到NEXT后则再次比较。
总的来说 这个程序是在BLOCK数据段以字的形式,找出其中最大的数。并把这个数存入MAX。
热心网友
时间:2022-06-21 05:19
1.
OFFSET BLOCK是指在前面数据段定义的名为BLOCK的一段数据的起始便宜地址
通常在前面可以看见类似如下的代码
DATA SEGMENT PARA PUBLIC 'DATA'
BLOCK DB **H,**H,**H,**H
DATA ENDS
MOV BX,OFFSET BLOCK就是把BLOCK的第一个地址存入了BX
2.MOV A,[BX]就是把这个地址所指向的内容存入AX
由于存的是AX是字型,所以是讲BLOCK的前两个字节的内容以字的形式存入AX
3.INC BX;INC BX。由于是字,所以偏移量应加2
3.MOV CX,99
定义了程序循环比较次数不超过99.由后面的DEC CX;JNZ AGAIN配合使用
4.CMP AX,[BX]。将偏移量改变后的内容和改变之前已经移入AX的前一个数进行比较。
5.JG 为判断。如果前一个值大于后一个值,则跳转到NEXT。NEXT处为地址再次加2,如果没有超过99次,就拿前一个数比较再下一个数。
如果前一个值不大于后一个值,则将当前值存入AX,然后地址再次加2,如果没有超过99次,就拿这个数比较下一个数。
6.跳转到NEXT后则再次比较。
总的来说 这个程序是在BLOCK数据段以字的形式,找出其中最大的数。并把这个数存入MAX。