题目内容 (请给出正确答案)
[主观题]

阅读以下说明和X86汇编语言代码,将应填入(n)处的字句...

阅读以下说明和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

警察 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 逻辑右移

警察 有进位时转移

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)处的字句..…”相关的问题

第1题

阅读以下说明和x86汇编语言代码,根据要求回答问题1至问题3。表6-3所示为 x86系统指令及寄存器说明表。

[说明]

在计算机控制中,有些数据补偿、计算及转换等参数的计算非常复杂,编程难,程序长且运算费时,但是用数表却比较容易实现。

设有256个字节的数据,已按从小到大的顺序存放在以BINTAB为首地址的数据区单元中,现要求查找其中值为126的数据,用对分查表法查询的汇编程序如下:

[汇编程序代码]

DATA SEGMENT

BINTAB DBl8,25,32,46,56,78,… ;第1~100个数据

DB 90,95,99,100,106,126,… ;第101~200个数据

DB 189,195,197,202,206,216,… ;第201~256个数据

COUNT EQU 256

FLAG DW ?

KEY EQU (1)

DATA ENDS

STAK SEGMENT

STPN DB 20 DUP(?)

STAK ENDS

CODE SEGMENT

ASSUME CS,CODE, DS,DATA, ES:DATA, SS:STAK

BINSEAT PROC FAR

START, MOV AX, DATA

MOV DS, AX

MOV ES, AX

LEA SI, BINTAB

MOV CX, COUNT

MOV DX, 1

MOV AX, SI

ADD AX, CX

MOV DI, AX

MOV AL, KEY

LOP0, MOV BX, SI

ADD BX, DI

SHR BX, 1

CMP AL, [BX]

JZ FOUND

PUSHF

(2)

JZ NFOUND

POPF

JL LESS

MOV SI, BX

JMP NEXT

LESS, (3)

NEXT, (4)

JMP LOP0

NFOUND: MOV AX, DX ;未找到,标志全1送DX

FOUND: MOV AX, DX

MOV FLAG, AX

RET

BINSEAT ENDP

CODE ENDS

(5)

请根据试题的要求,将汇编程序代码中(1)~(5)空缺处的内容填写完整。

点击查看答案

第2题

阅读以下有关80X86汇编语言的叙述,回答问题1和问题2,将解答填入对应栏内。

【说明】

本题由两部分组成,第一部分为计算AX寄存器的值,第二部分为判错题。

已知DS=2000H,BX=0100H,SI=0002H,存储单元[20100H]到[20103H]依次存放12H、34H、56H、78H,[21200H]~[21203H]依次存放2AH、4CH、B7H、65H,说明下列每一条指令执行后AX寄存器的内容。

(1)MOV AX,[1200H]

(2)MOV AX,[BX]

(3)MOV AX,[BX+1100H]

(4)MOV AX,[BX+SI]

(5)MOV AX,[BX][SI+1100H]

点击查看答案

第3题

阅读以下说明和C语言代码,回答问题1至问题3,将解答填入对应栏内。

【说明】

在实时系统中,许多控制软件需要将数据封装到一个数据结构中,以节省存储空间。对于位操作,使用汇编语言实现其访问比较容易,但会增加编程难度,因此现在普遍采用C语言实现。使用高级语言编程要特别注意结构的存储格式以及编译器的特性。本题所使用的编泽器对变量按声明顺序分配地址。分析图4—1所示的C语言代码,回答以下问题。

如果处理机按16位以大端方式(big_endian)编址,请在图4-2所示的存储器图表中填入myRarData数据的存储内容(十六进制表示)。

点击查看答案

第4题

以下程序设计语言是低级语言的是( )。

A.FORTRAN语言

B.JAVA语言

C.Visual Basic语言

D.80X86汇编语言

点击查看答案

第5题

以下是利用MCS-51系列单片机汇编语言实现模拟I2C总线接收N个字节数据的程序段(RDNBYTE),请将汇编程序代码中(9)~(13)空缺处的内容填写完整。表6-21所示为MCS-51系列单片机部分汇编指令及寄存器说明。

程序中已定义了标号为START的启动位子程序、标号为STOP的停止位子程序、标号为MACK的发送应答位子程序、标号为MNACK的发送非应答位子程序、标号为 CACK的应答位检查子程序、标号为WRBYT的向VSDA线上发送1个数据字节的子程序、标号为RDBYT的从VSDA线上读取1个数据字节的子程序。调用RDNBYTE程序的归一化操作命令是 MOV SLA,SLAR MOV NUMBYTE,N LCALL RDNBYT 【汇编程序代码】 VSDA EQU P1.6 ;虚拟I2C总线数据线 VSCL EQU P1.5 ;虚拟I2C总线时钟线 SLA EQU 50H ;寻址字节存放单元 NUMBYTE EQU 51H ;传送字节数存放单元 MTD EQU 30H ;发送数据缓冲区 MRD EQU 40H ;接收数据缓冲区 SLAW0 EQU 0AOH ;写AT24C64(器件地址为0AOH) SLAR0 EQU 0A1H ;读24C64 SLAW1 EQU 40H ;写PCF8574(器件地址为040H) SLAR1 EQU 41H ;读PCF8574 ;模拟I2C总线接收N个字节数据 RDNBYTE:MOV R3,NUMBYTE LCALL START ;发送启动位 MOV A,SLA ;发送寻址字节(读) (9) (10) JB F0,RDNBYTE RDN: MOV R1,MRD RDN1: (11) MOV @R1,A DJNZ R3,ACK ;N个字节读完否?未完转 (12) LCALL STOP ;发送停止位 RET ACK:(13) INC R1 SJMP RDN1 ;转读下一个字节数据 (9)~(13)空缺处供选择的答案 A.LCALL START B.LCALL MACK

C.LCALL CACK D.LCALL RDBYT

E.LCALL WRBYT F.LCALL MNACK G.LCALL STOP

点击查看答案

第6题

在80x86宏汇编语言中,为了使程序更加清晰易读,需要为程序代码添加一些注释,注释必须以下列哪种符号开始

A.//

B.'

C.;

D.{

点击查看答案

第7题

以下代码可以被计算机直接执行的是( )。

A.源代码

B.高级程序代码

C.机器语言代码

D.汇编语言代码

点击查看答案

第8题

在80X86汇编语言的段定义伪指令中,下列哪一种定位类型用来指定段的起始地址为任意地址?

A.BYTE

B.PARA

C.WORD

D.PAGE

点击查看答案

第9题

以下正确描述嵌入式程序代码生成过程的是(56)。

A.高级语言代码→目标代码→汇编语言代码→二进制代码

B.目标代码→高级语言代码→汇编语言代码→二进制代码

C.高级语言代码→汇编语言代码→目标代码→二进制代码

D.高级语言代码→汇编语言代码→二进制代码→目标代码

点击查看答案

第10题

下面是80X86宏汇编语言中关于SHORT和NEAR的叙述,( )是正确的。

A.它们都可以直接指示无条件转移指令目标地址的属性

B.它们都必须借助于PTR才能指示无条件转移指令目标地址的属性

C.SHORT必须借助于PTR才能指示无条件转移指令目标地址的属性

D.NEAR必须借助于PTR才能指示无条件转移指令目标地址的属性

点击查看答案
热门考试 全部 >
相关试卷 全部 >
账号:
你好,尊敬的上学吧用户
发送账号至手机
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改
谢谢您的反馈

您认为本题答案有误,我们将认真、仔细核查,
如果您知道正确答案,欢迎您来纠错

警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

微信搜一搜
上学吧
点击打开微信
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反上学吧购买须知被冻结。您可在“上学吧”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
微信搜一搜
上学吧
点击打开微信