#CCSP2016C3. 虚拟机设计 Part 2-3
虚拟机设计 Part 2-3
本题满分分值为 45 分,本提交链接为原题的子任务 3 部分,分值为 20 分。
时间限制: N/A
空间限制: N/A
这是一道提交答案题。
题目描述
最终,菜菜自己也将虚拟机编写了出来。菜菜的虚拟机不仅实现了前文所述的所有要求,还增加了检查程序格式错误的功能。只有格式无误的程序才会被执行。出于测试的目的,菜菜希望你能用这套指令编写程序,在虚拟机上完成下述几个任务。每个任务的程序长度均不得多于 40 行。
样例任务
已知 和 ,输出 和 中的较小值。
和 已经存放于内存当中, 存放在 3000 处, 存放在 3002 处。
任务解释
包括后面的任务,在没有特殊说明的情况下,所有的已知数据均默认为四位十六进制无符号整数。这里称“ 存放在 3000 处”,意味着 3000 处存放着 的低 8 位(二进制位),3001 处存放着 的高 8 位(二进制位)。其余没有存放已知数据的内存和寄存器,均已被初始化为 。
在求得答案后,只需要使用 ECHO 指令将其输出即可。
如果提交的程序长度小于等于 40 行、没有格式错误、能通过 STOP 指令正常结束,并且输出了正确的答案,你将会得到该任务相应的分数。
内存情况示意图:
3000 |
3001 |
3002 |
3003 |
3004 |
0B |
02 |
15 |
00 |
00 |
图即为 等于 (十进制), 等于 (十进制)时内存的初始情况。
样例程序
RUN
MOV AX T3000
MOV BX T3002
CMP AX BX
JNL 0008
ECHO AX
JMP 0009
ECHO BX
STOP
任务 3(20 分)
已知 和 ,试输出组合数 对 取模的结果。
寄存器 AX 存储了 的值,寄存器 BX 存储了 的值。
这里 表示 的阶乘,。
保证 。
提交方式
直接将你对该子任务给出的答案提交至代码框即可。