题目
设有100个字节数据(补码),存放在数据段中EA=2000H的存储区内,以下程序应能从该数据区中找出最大的1个数并存入同一数据段EA=2100H的单元中,请完成该程序(在空白处填入适当的语句)。MAX: MOV BX,MOV AL,[BX]MOV CX,LOOP1: INC BXCMP AL,[BX]LOOP2MOV AL,[BX]LOOP2: DEC CXJNZMOV ,AL
设有100个字节数据(补码),存放在数据段中EA=2000H的存储区内,以下程序应能从该数据区中找出最大的1个数并存入同一数据段EA=2100H的单元中,请完成该程序(在空白处填入适当的语句)。MAX: MOV BX,MOV AL,[BX]MOV CX,LOOP1: INC BXCMP AL,[BX]LOOP2MOV AL,[BX]LOOP2: DEC CXJNZMOV ,AL
题目解答
答案
2000H#99;63H#JGE;jge#LOOP1;loop1#[2100H]
解析
步骤 1:初始化
- 将BX寄存器设置为2000H,指向数据区的起始地址。
- 将AL寄存器设置为数据区的第一个字节,即[2000H]。
- 将CX寄存器设置为99,表示需要比较的剩余数据个数。
步骤 2:循环比较
- 增加BX寄存器的值,指向下一个字节。
- 比较AL寄存器的值与BX寄存器指向的字节值。
- 如果AL寄存器的值小于BX寄存器指向的字节值,则将AL寄存器的值更新为BX寄存器指向的字节值。
- 减少CX寄存器的值,表示已经比较了一个字节。
- 如果CX寄存器的值不为0,则继续循环比较。
步骤 3:存储最大值
- 将AL寄存器的值存储到数据段EA=2100H的单元中。
- 将BX寄存器设置为2000H,指向数据区的起始地址。
- 将AL寄存器设置为数据区的第一个字节,即[2000H]。
- 将CX寄存器设置为99,表示需要比较的剩余数据个数。
步骤 2:循环比较
- 增加BX寄存器的值,指向下一个字节。
- 比较AL寄存器的值与BX寄存器指向的字节值。
- 如果AL寄存器的值小于BX寄存器指向的字节值,则将AL寄存器的值更新为BX寄存器指向的字节值。
- 减少CX寄存器的值,表示已经比较了一个字节。
- 如果CX寄存器的值不为0,则继续循环比较。
步骤 3:存储最大值
- 将AL寄存器的值存储到数据段EA=2100H的单元中。