问题–在8086微处理器中编写汇编语言程序以查找数字的平方根。
例子 –
算法 –
- 将输入数据移动到寄存器AX中
- 将数据移至CX中的0000和BX中的FFFF
- 将0002添加到BX的内容中
- 将CX的内容增加1
- 减去AX和BX的内容
- 如果未设置零标志(ZF),则转到步骤3,否则转到步骤7
- 将数据从CX存储到偏移量600
- 停止
程序 –
OFFSET MNEMONICS COMMENT 0400 MOV AX, [500] AX <- [500] 0404 MOV CX, 0000 CX <- 0000 0407 MOV BX, FFFF BX <- FFFF 040A ADD BX, 02 BX = BX + 02 040E INC CX C = C + 1 040F SUB AX, BX AX = AX – BX 0411 JNZ 040A JUMP to 040A if ZF = 0 0413 MOV [600], CX [600] <- CX 0417 HLT Stop 解释 –
- M0V AX,[500]用于将数据从偏移500移动到寄存器AX
- MOV CX 0000用于将0000移动到寄存器CX
- MOV BX FFFF用于将FFFF移至寄存器BX
- ADD BX,02用于添加BX和02
- INC CX用于将CX的内容增加1
- SUB AX,BX用于通过BX减去AX的内容
- 如果零标志(ZF)为0,则JNZ 040A用于跳转到地址040A
- MOV [600],CX用于将CX的内容存储到偏移量600
- HLT用于结束程序