【题目描述】
第 1 题 十进制数60转换成二进制数是A.0111010
B.0111110
C.0111100
D.0111101
【我提交的答案】: B |
【参考答案与解析】: 正确答案:C |
十进制整数转二进制的方法是除2取余法。“除2取余法”:将十进制数除以2得-商数和-余数。再用商除以2……以此类推。最后将所有余数从后往前排列。
具体步骤?
请编制程序,其功能是:内存中连续存放着两个无符号字节数序列Ak和Bk (k=0,1,…,9),求序列Ck,Ck=Ak÷Bk (运算结果按序以字的形式连续存放,其中低字节为商,高字节为余数)。
例如:
序列Ak为:01H,7FH, 80H,FFH…
序列Bk为:PFH,80H,7FH,01H…
结果Ck为:0100H(00H为商、01H为余数),7F00H,0101H,00FFH…
部分程序已给出,其中原始数据由过程LOAD从文件INPUT.DAT中读入SOURCE开始的内存单元中,运算结果要求从 RESULT开始存放,由过程SAVE保存到文件OUTPUT.DAT中。
请填空BEGIN和END之间已给出的源程序使其完整,空白已用横线标出,每个空白一般只需一条指令,但采用功能相当的多条指令亦可,或删除BEGm和END之间原有的代码并自行编程来完成所要求的功能。
对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。
[试题程序]
EXTRN LOAD:FAR,SAVE:FAR
N EQU 10
STAC SEGMENT STACK
DB 128 DUP()
STAC ENDS
DATA SEGMENT
SOURCE DB N*2 DUP()
RESULT DW N DUP(0)
NAME0 DB 'INPUT.DAT',0
NAME1 DB 'OUTPUT.DAT',0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:STAC
START PROC FAR
PUSH DS
XOR AX,AX
PUSH AX
MOV AX,DATA
MOV DS,AX
LEA DX,SOURCE ;数据区起始地址
LEA SI,NAME0 ;原始数据文件名
MOV CX,N*2 ;字节数
CALL LOAD ;从 'INPUT.DAT' 中读取数据
; ******** BEGIN ********
MOV DI,OFFSET RESULT
MOV BX,0
(1)
PRO: MOV (2)
(3) ,SOURCE[BX]
CBW
DIV (4)
MOV [DI], (5)
ADD DI,2
(6)
DEC CX
(7) PRO
; ******** END ********
LEA DX,RESULT ;结果数据区首址
LEA SI,NAME1 ;结果文件名
MOV CX,2*N ;结果字节数
CALL SAVE ;保存结果到文件
RET
START ENDP
CODE ENDS
END START
【问题1】 (4分) 请补全该 S 盒,填补其中的空(1) - (4),将解答写在答题纸的对应栏内。 【问题 2】 (2分) 如果该 S 盒的输入为 110011,请计算其二进制输出。 【问题3】(6分) DES加密的初始置换表如下: 58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7 置换时,从左上角的第一个元素开始,表示输入的铭文的第58位置换成输出的第1位,输入明文的第50位置换成输出的第2位,从左至右,从上往下,依次类推。 DES加密时,对输入的64位明文首先进行初始置换操作。 若置换输入的明文M=0123456789ABCDEF(16进制),请计算其输出(16进制表示)。 【问题4】(2分) 如果有简化的DES版本,其明文输入为8比特,初始置换表IP如下: IP:2 6 3 1 4 8 5 7 请给出其逆初始置换表。 【问题5】(2分) DES加密算法存在一些弱点和不足,主要有密钥太短和存在弱密钥。请问,弱密钥的定义是什么?