执行以下程序后,数据段中sum0字节单元中的内容是 H。 data segment blk1 db 90h,78h,56h,34h,12h
A 7462H
B 7463H
C 7464H
D 7465H
DATA SEGMENT
NUM1 DB 20 ;NUM1分配______B
NUM2 DB '1AH,2DH,35H,40H' ;NUM2分配______B
NUM3 EQU 05H ;NUM3分配______B
NUM4 DB NUM3 DUP(0) ;NUM4分配______B
DATA ENDS
下面程序的功能是:输入一些整数,编程计算并输出其中所有正数的和,输入负数时不累加,继续输入下一个数。输入零时,表示输入数据结束。要求最后统计出累加的项数。在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include <stdio.h> int main() { int i = 0, n, sum = 0; printf("Input a number:\n"); scanf("%d", &n); while(_________) { if (________) { sum = sum + n; ______; } printf("Input a number:\n"); scanf("%d", &n); } printf("sum=%d,count=%d\n", sum, i); return 0; }
A、第7行: n != 0 第9行: n > 0 第12行: i++
B、第7行: n == 0 第9行: n >= 0 第12行: n++
C、第7行: n = 0 第9行: n ≥ 0 第12行: i++
D、第7行: n ≠ 0 第9行: n > 0 第12行: n++
给定以下三个程序,要求用ASM和Premain-agent技术,完成对Hello类的方法调用时,有test开头的方法,进行AOP的字节码注入,自动调用AopInteceptor的before和after方法。 Hello类 public class Hello { // 普通方法 public void say(){ System.out.println("1111111"); } // 测试方法 public void test(){ System.out.println("test test"); } } AopInteceptor类 public class AopInteceptor { public static void before(){ System.out.println(".......before()......."); } public static void after(){ System.out.println(".......after()......."); } } Test类 public class Test { public static void main(String[] args) { Hello foo = new Hello(); foo.say(); foo.test(); } } 提示: 可以分成2个项目。 用ASM完成静态方法调用。 用Premain方法完成javaagent预加载的处理。 可以在ClassVisitor类的visitMethod方法中对方法名继续判定。 最后的实现效果
例如:
序列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
DABY1 DB 6BH
DABY2 DB 3DUP(0)
试编写一段程序,把DABY1字节单元中的数据分解成3个八进制数,其最高位八进制数据存放在DABY2字节单元中,最低位存放在DABY2+2字节单元中。
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!