@Lin--
2017-11-16T09:35:37.000000Z
字数 842
阅读 330
用机器语言写满足这样功能的程序:键盘输入两个数,进行相加,然后输出结果。
0000 C0 00 00 ;把A寄存器清零
0003 31 00 18 ;用键盘输入第一个数,存储该数到地址0018
0006 71 00 18 ;将地址0018中的操作数(即用键盘输入的第一个数)加入到寄存器A中
0009 31 00 20 ;用键盘输入第二个数,存储该数到地址0020
000C 71 00 20 ;将地址0019中的操作数(即用键盘输入的第二个数)加入到寄存器A中
000E E1 00 22 ;存储A寄存器的数据(即两数之和)到地址0022
0013 39 00 22 ;在显示屏上显示地址0022中对应的数据(及两数之和)
0016 zz ;停止操作
用汇编语言写满足这样功能的程序:键盘输入一个整数n,求1+2+...+ n的结果,并输出。
BR main
sum: .WORD 0X0000 ;设置sum为0
num: .BLOCK 2 ;为num设置存储空间
counter: .WORD 0x0000 ;设置counter为0
main: DECI num,d ;从键盘上输入数字num
loop: LDA sum,d ;将sum的值调入寄存器A
ADDA counter,d ;将counter的值加入寄存器A
STA sum,d ;存储数据sum
LDA counter,d ;将counter的值调入寄存器A
ADDA 1,i ;将1加入到寄存器A中
STA counter,d ;存储counter的值
CPA num,d ;比较counter与num的值
BREQ L1 ;若两值相同,执行L1操作
BR loop ;若两值不同,继续循还
执行上述循环后,sum的值是1+2+...+n-1,而此时counter的值
与n相同,故需将counter加入sum中,使得sum=1+2+...+n
L1: LDA sum,d ;将sum的值调入寄存器A
ADDA counter,d ;将counter的值加入寄存器A
STA sum,d ;存储数据sum
quit: DECO sum,d ;在显示屏上显示sum的值
STOP ;停止
.END ;结束