正在加载图片...
解:连续调用下列二个子程序即可 (1)分离显示数字子程序 SPRT: Mov RO. #30H 置万位BCD码间址 mov A 30H 置被除数 mov B 31H Mov R6.#27H ;置除数10000=2710H MOV R5 #10H LCALL SUM ;除以1000,0万位商存30H,余数存A、B MOv R6.#03H 置除数1000=03E8H Mov R5. #oE8H INC RO 指向千位商间址(31H LCALL SUM 除以1000千位商存31H余数存A、B MOV R6.#0 ;置除数100 MOvR5,#100 INC RO 指向百位商间址(32H) LCALL SUM 除以100,百位商存32H,余数存A(B=0) MOV B #10 置除数10 DIV AB ;除以10 INC RO ;指向十位商间址(33H MOV @RO. A 位商存33H XCH A B ;读个位数 INC RO ;指向个位间址(34H MOV @RO, A 位存34H RET 说明:SUM是16位除以16位子程序:(A、B÷(R6、R5)=商@R0,余数(A、B)。(参阅例4-9)SPRT: MOV R0,#30H ;置万位BCD码间址 MOV A,30H ;置被除数 MOV B,31H ; MOV R6,#27H ;置除数10000 = 2710H MOV R5,#10H ; LCALL SUM ;除以10000,万位商存30H,余数存A、B MOV R6,#03H ;置除数1000 = 03E8H MOV R5,#0E8H ; INC R0 ;指向千位商间址(31H) LCALL SUM ;除以1000,千位商存31H,余数存A、B MOV R6,#0 ;置除数100 MOV R5,#100 ; INC R0 ;指向百位商间址(32H) LCALL SUM ;除以100,百位商存32H,余数存A(B=0) MOV B,#10 ;置除数10 DIV AB ;除以10 INC R0 ;指向十位商间址(33H) MOV @R0,A ;十位商存33H XCH A,B ;读个位数 INC R0 ;指向个位间址(34H) MOV @R0,A ;个位存34H RET ; 解:连续调用下列二个子程序即可。 ⑴ 分离显示数字子程序 说明:SUM是16位除以16位子程序:(A、B)÷(R6、R5)=商@R0,余数(A、B)。(参阅例4-9)
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有