-
某种计算机内存空间为0000H至5FFFH,则可以存放()字节。
A . 24KB
B . 32KB
C . 24MB
D . 32MB
-
n+1位有符号数x的补码表示范围为()。
A . -2n<x<2n
B . -2n≤x≤2n-1
C . -2n-1≤x≤2n-1
D . -2n<x≤2
-
将AL中的有符号数扩展成字类型,存储在AX中,可以用指令()。
A . MOV AX,AL
B . MOVSX AX,AL
C . MOVZX AX,AL
D . CBW
-
OF位可用来表示有符号数的溢出。
A . 正确
B . 错误
-
若(AL)=94H,当看作是无符号数时,它代表(),若是有符号数(补码)时,它代表()。
-
实地址方式下,中断类型码为8的中断矢量从地址开始内存单元开始存放,共占个字节().
A . 00020H,2
B . 00010H,2
C . 00010H,4
D . 00020H,4
-
如果用24b储存一个无符号数,这个数的范围是什么?如果储存的是一个补码表示的有符号数,那么这个数的范围又是什么?
-
自12FA:0000开始的内存单元中存放以下数据(用十六进制形式表示):03 06 11 A3 13 01,试分别写出12FA:0002的字节型数据、字型数据及双字型数据的值。
-
给定一个存放数据的内存单元的偏移地址是20C0H,(DS)=0C00EH,求出该内存单元的物理地址。
-
AL和VAR字节单元中分别存放一个带符号数,执行CMPAL,VAR时,如AL>VAR,那么溢出位和符号位的关系是()。
-
已知内存变量X,Y,Z均由“DB”伪操作定义,按照以下要求,使用MOVZX或MOVSX指令进行位数扩展,求三个数的16b和。 如果X,Y,Z为有符号数。
-
在8086和8088汇编语言中,一个字能表示的有符号数的范围是()
A . A、-32768≤n≤32768
B . B、-32768≤n≤32767
C . C、-65535≤n≤65535
D . D、-65536≤N≤65535
-
对计算机中的有符号数,其符号的表示方法为()
A . 符号位为“0”表示正数
B . 符号位为“1”表示正数
C . 定点数通常最高位为符号位
D . 浮点数的尾数符号代表整个数据的符号
-
一个双字长有符号数存放在DX(高位)AX(低位)中,写出求该数相反数的指令序列。 结果仍存入DX,AX寄存器
-
给定一个存放数据的内存单元的偏移地址是20C0H,(DS)=0C0E0H,求出该内存单元的物理地址。
-
8 位有符号数的范围为 -128~127 。
-
针对有符号数的条件转移指令包括下列的()。
A.JG
B.JGE
C.JL
D.JLE
-
用一个字节表示有符号数的范围时,反码表示的范围是()。
A.0~+127
B.-127~+127
C.-127~+128
D.-128~+127
-
假定某计算机按字节编址,采用小端方式,有一个foat型变量x的地址为FFFFC000H,x=12345678H,则在内存单元FFFFC001H中存放的内容是()。
A.A.1234H
B.B.34H
C.C.56H
D.D.5678H
-
编制一个程序,其功能是:计算内存中连续存放的20个字节无符号数据的相邻两个数据之间的和,并找出和的最大值,和的最大值存放在结果的最后一个字单元,和为字数据。
例如:
内存中有:20H,04H,58H,34H,35H,4DH……,
则结果为:0024H,008CH,0082H……
部分程序已经给出,其中原始数据由过程LOAD从文件INPUT.DAT中读入以SOURCE开始的内存单元中。运算结果要求从RESULT开始的内存单元存放,由过程SAVE保存到文件OUTPUT.DAT中。
请填空BEGIN和END之间已给出的源程序使其完整,空白已经用横线标出,每行空白一般只需要—条指令,但采用功能相当的多条指令也行,考生也可以删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。
【试题程序】
TRN OAD:FAR,SAVE:FAR
N EQU 10
SSEG SEGMENT TACK
B 256 DUP ()
SSEG NDS
DSEG EGMENT
SOURCE DB N*2 DUP ()
RESULT DW N+1 DUP (0)
NAME0 DB 'INPUT.DAT',0
NAME1 DB 'OUTPUT.DAT',0
DSEG DS
CSEG EGMENT
SSUME CS:CSEG,DS:DSEG,SS:SSEG
START PROC FAR
USH S
OR AX,AX
USH X
OV AX,DSEG
OV DS,AX
EA DX,SOURCE
EA SI,NAME0
OV CX,N*2
ALL GAD
; ******** BEGIN ********
EA SI, SOURCE
EA DI,RESULT
OV CX,N
AGAIN0: (1)
OV AL,[SI]
DD AL,[SI+1]
DC AH,0
OV [DI],AX
DD SI, (2)
(3)
OOP GAIN0
OV BX,N-1
OV SI,OFFSET RESULT
OV AX,[SI]
AGAIN1: ADD SI, 2
MP AX,[SI]
(4)
OV AX,[SI]
NEXT: DEC BX
NZ AGAIN1
(5)
; ******** END ********
EA DX,RESULT
EA SI,NAME1
OV CX,N+1
ALL AVE
ET
START ENDP
CSEG ENDS
END START
-
请编制程序,其功能是:内存中连续存放的20个8位无符号数是一个自动抄表仪抄录的 20个用户某月天然气的使用量(立方米),天然气费用的计算公式如下(X表示天然气使用量; Y表示需交纳的天然气费用,单位为分):
a) Y=X*70 X≤10
b) Y=10*70+(X-10)*120 X>10
例如:
天然气使用量(X)为04H,0FH,18H…
天然气费用(Y)为0118H,0514H,094CH…
试计算出这20个用户应缴纳的天然气费,结果用字(WORD)表示。
部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件 OUTPUT1.DAT中。
填空BEGIN和END之间已给出的一段源程序使其完整(空白已用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处,请加以修改。
试题程序:
EXTRN LOAD:FAR, SAVE:FAR
N EQU 20
RATE1 EQU 70
RATE2 EQU 120
DELTA EQU 10
STAC SEGMENT STACK
DB 128 DUP()
STAC ENDS
DATA SEGMENT
SOURCE DB N DUP()
RESULT DW N DUP(0)
NAME0 DB 'INPUT 1.DAT',0
NAME1 DB 'OUTPUT1.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 ; 字节数
CALL LOAD ; 从INPUT1.DAT中读取数据
;****BEGIN****
LEA SI,SOURCE
LEA DI,RESULT
CLD
MOV CX,N
MOV BL,RATE 1
MOV BH,RATE2
AGAIN: (1)
CMP AL,DELTA
J (2) GREAT
MUL BL
JMP NEXT
GREAT: (3)
MUL BH
(4)
NEXT: (5)
(6)
INC SI
LOOP AGAIN
;****END****
LEA DX,RESULT&nb
-
编写两个4字节无符号数相减的程序。被减数存放在片内RAM 30H开始的数据区,减数存放在40H开始的数据区(均为低位在前),差值存回30H开始的存储单元,试补全下列程序。
MOV R0,30H
MOV R1,40H
MOV R3,04H
SJMP $
-
若有定义:chars[]="china";则C编译系统为数组s开辟【】个字节的内存单元。
-
编制一个程序,其实现的功能为:将内存中从SOURCE开始的区域里存放的20个字节的压缩BCD码转换为ASCⅡ码,每个压缩的BCD码转换为两个ASCⅡ码,并在最高位加上奇校验位,结果存放到RESULT开始的内存区域。
例如:
内存中有:73H,45H……
则结果为:37H,B3H,34H,B5H……
部分程序已经给出,其中原始数据由过程LOAD从文件INPUT.DAT中读入以SOURCE开始的内存单元中。运算结果要求从RESULT开始的内存单元存放,由过程SAVE保存到文件OUTPUT.DAT中。
请填空BEGIN和END之间已给出的源程序使其完整,空白已经用横线标出,每行空白一般只需要一条指令,但采用功能相当的多条指令也行,考生也可以删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。
【试题程序】
EXTRN LOAD:FAR,SAVE:FAR
N EQU 20
DSEG SEGMENT
SOURCE DB N DUP()
RESULT DB N*2 DUP(0)
NAME0 DB 'INPUT.DAT',0
NAME1 DB 'OUTPUT.DAT',0
DSEG ENDS
SSEG SEGMENT STACK
DB 256 DUP() SSEG ENDS CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG,SS:SSEG START PROC FAR
PUSH DS
XOR AX,AX
PUSH AX
MOV AX,DSEG
MOV DS,AX
LEA DX,SOURCE
LEA SI,NAME0
MOV CX,N
CALL LOAD
; ******** BEGIN ********
LEA SI,SOURCE
LEA DI,RESULT
MOV CX,N
AGAIN: MOV AL,[SI]
MOV AH,AL
(1)
AND AH,0FOH
(2)
MOV CL,4
(3)
POP CX
ADD AL,30H
(4) NEXT
OR AL,80H
NEXT: MOV [DI],AL
INC DI
ADD AH,30H
(5) NEXT1
OR AH,80H
NEXT1: MOV [DI],AH
INC DI
INC SI
LOOP AGAIN
; ******** END ********
LEA DX,RESULT
LEA SI,NAME1
MOV CX,N*2
CALL SAVE
RET
START ENDP
CSEG ENDS
END START