+ -
当前位置:首页 → 问答吧 → 帮小弟注释下程序,指出操作数的寻址方式。

帮小弟注释下程序,指出操作数的寻址方式。

时间:2010-11-12

来源:互联网

题1:设计程序,完成在屏幕上输出0~9十个数字字符。
A0800
MOV R2,0A  
MOV R0,30  
(0804)CALL 009B  
INC R0  
DEC R2  
JR NZ,0804  
RET  
在命令提示符>下键入命令G0800,屏幕上显示0~9十个数字字符。
题2:设计程序,完成从键盘输入数字字符,并在屏幕上显示。若遇非数字符则结束输入程序。
A0840
MOV R2,30 
MOV R3,39
(0844)CALL 005A
CMP R0,R2
JP C,0850
CMP R3,R0
JP C,0850
CALL 009B
JP 0844
(0850)RET
题3:计算1到10的累加和
A860
MOV R1,0
MOV R2,0A
MOV R3,0
(866)INC R3 
ADD R1,R3
CMP R3,R2
JR NZ,866
RET
运行过后,用R命令看R1中的累加结果。
题4:设计一个完成双倍字长整数相加的程序。
A880
MOV R8,1234 
MOV R9,9678
MOV R10,6789
MOV R11,8888
ADD R9,R11
ADC R8,R10
RET
运行过后,用R命令查看放在R8、R9中的相加结果。
题5:还是双倍字长的整数相加的功能,但两个数与相加结果保存在910开始的主存区中。
E910 (送入参加相加的两个数的初值)
1234 9678 6789 8888
A920
MOV R12,910
MOV R8,[R12]
INC R12
MOV R9,[R12]
INC R12
MOV R10,[R12]
INC R12
MOV R11,[R12]
ADD R9,R11
ADC R8,R10
MOV 1[R12],R8
MOV 2[R12],R9
RET
运行过后,用D910命令看运行结果为:1234 9678 6789 8888 79BF 1F00。这个程序中使用了寄存器间接寻址方式和变址寻址方式。

作者: WIN32long   发布时间: 2010-11-12

引用楼主 win32long 的回复:
题1:设计程序,完成在屏幕上输出0~9十个数字字符。
A0800
MOV R2,0A
MOV R0,30
(0804)CALL 009B
INC R0
DEC R2
JR NZ,0804
RET
在命令提示符>下键入命令G0800,屏幕上显示0~9十个数字字符。
题2:设计程序,完成从键盘输入数字字符,并在屏幕上显示。若遇非数字符则结束输入程序。
……

这些指令有些可以去查书,或者有些编译器里有自带的。太多指令了~

作者: kartik   发布时间: 2010-11-13