网友您好, 请在下方输入框内输入要搜索的题目:

题目内容 (请给出正确答案)

阅读以下说明和X86汇编语言代码,将应填入(n)处的字句写在答题纸的对应栏内。

[说明]

设有数组X和Y。X数组中有X1,X2、…、X10十个数,Y中有Y1、Y2、…、 Y10十个数。编制程序计算:

Z1=X1+Y1 Z2=X2+Y2 Z3=X3-Y3 Z4=X4-Y4

Z5=X5-Y5 Z6=X6+Y6 Z7=X7-Y7 Z8=X8-Y8

Z9=X9+Y9 Z10=X10+Y10

设置一个10位的标志尺:LOGIC_RULE,若它的每一位决定了当前按顺序该做加法(该位为0)或减法(该位为1)操作,则由上列等式可知LOGIC RULE中的低10位应是(1)。

[汇编程序代码]

datarea segment ;define data segment

x dw x1,x2,x3,x4,x5,x6,x7,x8,x9,x10

y dw y1,y2,y3,y4,y5,y6,y7,y8,y8,y10

z dw z1,z2,z3,z4,z5,z6,z7,z8,z9,z10

logic_ruledw (2) ;LOGIC_RULE initialize

datarea ends

program segment ;define code segment

main proc far

assume cs:program, ds:datarea

start: ;starting execution address

(3) ;save old data segment

sub ax, ax ;put zero in AX

push ax ;save it on stack

;set DS register to current data segment

mov ax,datarea

mov ds,ax

;MAIN PART OF PROGRAM GOES HERE

mov bx,0

mov ex,10

mov dx,logic_rule

next:

mov ax,x[bx]

shr dx,1

jc subtract

(4)

jmp short result

subtract:

sub ax, y [bx]

result:

(5) ;result=>Zn

add bx,2

loop next

ret ;return to DOS

main endp

;end of main part of program

program ends

;end of code segment

end start ;end of assembly

附:指令及寄存器说明。

MOV 传送字或字节

PUSH 把字压入堆栈

SHR 逻辑右移

JC 有进位时转移

JMP 无条件转移指令

SUB 减法

ADD 加法

LOOP CX不为零时循环

JNE/JNZ 不等于时转移

CMP 比较

段寄存器2个:

CS: 代码段寄存器

DS: 数据段寄存器

数据寄存器4个:

AX: 累加器

BX: 基址寄存器

CX: 计数寄存器

DX: 数据寄存器

(1)00 1101 1100

(2)00dch, 或00DCH,或220,或等价的二进制形式

(3)push ds

(4)add ax,y[bx]

(5)mov z[bx],ax


参考答案

更多 “ 阅读以下说明和X86汇编语言代码,将应填入(n)处的字句写在答题纸的对应栏内。[说明]设有数组X和Y。X数组中有X1,X2、…、X10十个数,Y中有Y1、Y2、…、 Y10十个数。编制程序计算:Z1=X1+Y1 Z2=X2+Y2 Z3=X3-Y3 Z4=X4-Y4Z5=X5-Y5 Z6=X6+Y6 Z7=X7-Y7 Z8=X8-Y8Z9=X9+Y9 Z10=X10+Y10设置一个10位的标志尺:LOGIC_RULE,若它的每一位决定了当前按顺序该做加法(该位为0)或减法(该位为1)操作,则由上列等式可知LOGIC RULE中的低10位应是(1)。[汇编程序代码]datarea segment ;define data segmentx dw x1,x2,x3,x4,x5,x6,x7,x8,x9,x10y dw y1,y2,y3,y4,y5,y6,y7,y8,y8,y10z dw z1,z2,z3,z4,z5,z6,z7,z8,z9,z10logic_ruledw (2) ;LOGIC_RULE initializedatarea endsprogram segment ;define code segmentmain proc farassume cs:program, ds:datareastart: ;starting execution address(3) ;save old data segmentsub ax, ax ;put zero in AXpush ax ;save it on stack;set DS register to current data segmentmov ax,datareamov ds,ax;MAIN PART OF PROGRAM GOES HEREmov bx,0mov ex,10mov dx,logic_rulenext:mov ax,x[bx]shr dx,1jc subtract(4)jmp short resultsubtract:sub ax, y [bx]result:(5) ;result=>Znadd bx,2loop nextret ;return to DOSmain endp;end of main part of programprogram ends;end of code segmentend start ;end of assembly附:指令及寄存器说明。MOV 传送字或字节PUSH 把字压入堆栈SHR 逻辑右移JC 有进位时转移JMP 无条件转移指令SUB 减法ADD 加法LOOP CX不为零时循环JNE/JNZ 不等于时转移CMP 比较段寄存器2个:CS: 代码段寄存器DS: 数据段寄存器数据寄存器4个:AX: 累加器BX: 基址寄存器CX: 计数寄存器DX: 数据寄存器(1)00 1101 1100(2)00dch, 或00DCH,或220,或等价的二进制形式(3)push ds(4)add ax,y[bx](5)mov z[bx],ax ” 相关考题
考题 ●试题四阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】函数QuickSort是在一维数组A[n]上进行快速排序的递归算法。【函数】void QuickSort(int A[],int s,int t){int i=s,j=t+1,temp;int x=A[s];do{do i++;while (1) ;do j--;while(A[j]x);if(ij){temp=A[i]; (2) ; (3) ;}}while(ij);A[a]=A[j];A[j]=x;if(si-1) (4) ;if(j+1t) (5) ;}

考题 阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。【说明】函数QuickSort是在一维数组A[n]上进行快速排序的递归算法。【函数】void QuickSort( int A[ ],int s,int t){ int i=s,j=t+1,temp;int x=A[s];do{do i ++ ;while (1);do j -- ;while(A[j]>x);if(i<j){temp=A[i];(2);(3);}}while(i<j);A[a] =A[j];A[j] =x;if(s<i-1) (4);if(j+1<t) (5);}

考题 ●试题二阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】该程序运行后,输出下面的数字金字塔【程序】includestdio.hmain (){char max,next;int i;for(max=′1′;max=′9′;max++){for(i=1;i=20- (1) ;++i)printf(" ");for(next= (2) ;next= (3) ;next++)printf("%c",next);for(next= (4) ;next= (5) ;next--)printf("%c",next);printf("\n");}}

考题 ●试题一阅读下列说明和流程图,将应填入(n)的字句写在答题纸的对应栏内。【说明】下列流程图(如图4所示)用泰勒(Taylor)展开式sinx=x-x3/3!+x5/5!-x7/7!+…+(-1)n×x 2n+1/(2n+1)!+…【流程图】图4计算并打印sinx的近似值。其中用ε(0)表示误差要求。

考题 试题三(共 15 分)阅读以下说明和 C 程序,将应填入 (n) 处的字句写在答题纸的对应栏内。

考题 (a)智能网概念模型中分布功能平面模型如下图所示,请根据此图将应填入(n)处的 字句写在答题纸的对应栏内。

考题 阅读下列说明和C++-代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某发票(lnvoice)由抬头(Head)部分、正文部分和脚注(Foot)部分构成。现采用装饰(Decorator)模式实现打印发票的功能,得到如图5-1所示的类图。 【C++代码】 #include using namespace std; class invoice{ public: (1){ cout

考题 阅读下列说明和C++代码,回答问题,将解答填入答题纸的对应栏内。 【说明】某航空公司的会员积分系统将其会员划分为:普卡 (Basic)、银卡(Silver)和金卡 (Gold) 三个等级。非会员 (NonMember) 可以申请成为普卡会员。会员的等级根据其一年内累积 的里程数进行调整。描述会员等级调整的状态图如图 5-1 所示。现采用状态 (State) 模式实现上述场景,得到如图 5-2 所示的类图。 【问题1】(15分)阅读上述说明和C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。

考题 阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】 某文件管理系统中定义了类OfficeDoc和DocExplorer,当类OfficeDoc发生变化时,类DocExplorer的所有对象都要更新其自身的状态,现采用观察者(Observer)设计模式来实现该需求,所设计的类图如图6-1所示。

考题 阅读下列说明和?C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 阅读下列说明和?Java代码,将应填入?(n)?处的字句写在答题纸的对应栏内。 【说明】 某快餐厅主要制作并出售儿童套餐,一般包括主餐(各类比萨)、饮料和玩具,其餐品种 类可能不同,但其制作过程相同。前台服务员?(Waiter)?调度厨师制作套餐。现采用生成器?(Builder)?模式实现制作过程,得到如图?6-1?所示的类图。