急求答案
1. MOV CL,5 SAR [DI],CL
如指令执行前,(DS)=0F800H,(DI)=180AH,(0F980AH)=0064H, 则指令执行后,(0F980AH)= ⑴ ,CF= ⑵ 。
2.在1M 字节的存储器中,每个存储单元都有一个唯一的 ⑶ 位地址,称为该物理单元的物理地址。
3.子程序的参数传送方式有 ⑷ , ⑸ , ⑹ , ⑺ 等。
4.内中断有三类中断源,分别为 ⑻ , ⑼ , ⑽ 。
5.计算机中的指令由 ⑾ 字段和 ⑿ 字段两部分组成。
6. ORG 1000H
X DB 12H
Y DW X
Z DD Y
(DS)=3879H, (BX)=1000H, (SI)=0002H,求下列指令执行完后指定寄存器的内容:MOV AX, [1000H] ; (AX)= ⒀ ;MOV AX, [BX]; (AX)= ⒁ ;
MOV AX, [BX+SI]; (AX)= ⒂ ;MOV AX, [Y+1];(AX)= ⒃ ;
LEA DX, X; (DX)= ⒄ ;
7.十六进制数D8被看作是用补码表示的带符号数时,它表示十进制数⒅ ;当它被看作是用补码表示的无符号数时,它表示十进制数 ⒆ ;
8.INT 12H 的服务程序入口地址存放在中断向量表的 ⒇ (地址)单元。
二、判断题 (15分) 将答案写到答题纸相应位置上(对√;错×)
1.同一地址既可以看作是字节单元的地址,也可以看作是字单元的地址。
2.一个字存入存储器要占用相继的两个字节,低位字节存入低地址,高位字节存入高地址。
3. MOV AX,1000H 指令中的源操作数采用的是立即寻址方式。
4. MOV AX,ES:[DI+SP]中源操作数是带段跨越前缀的基址变址寻址。
5. IN DX,AL指令从DX指定的端口地址读入一个字节到AL寄存器中。
6. ADD AX,BX与ADC AX,BX指令得到的结果总是不同的。
7. MOVS ES:BYTE PTR[DI],DS:[SI]完全等价于MOVSB。
8. DUP操作不可以嵌套。
9.MOV指令不可以将一个存储单元的内容直接送入另外一个存储单元。
10.定义在代码段中的类型属性为FAR的子程序只能在代码段之外调用。
三、简答题 (20分)
1.简述中断的过程
2.简述汇编语言从源程序的建立到运行可执行程序的主要步骤。
3.试比较宏与子程序
4.D1 DB 20H DUP(?)
D2 DW D1
请写出用一条指令实现取D1的偏移地址=>SI的三种方法。
四、程序分析与填空题 (20 分)
1.对于以下宏定义
BRANCH MACRO X
IF ($-X) GE 128
JMP NEAR PRT X
ELSE
JMP SHORT X
ENDIF
ENDM
现有以下代码
LOOP0: MOV AX,BX
BRANCH LOOP0
请写出其中的宏调用展开。
2.下面的程序段完成什么功能?程序执行后,AX寄存器的内容是什么?
XOR AX,AX
MOV BX,2
MOV CX,10
L:ADD AX,BX
ADD BX,2
LOOP L
五、程序设计题 (25 分)
1.按下列要求编写一个子程序:
子程序名:ABS
功能:求两数和的绝对值
输入参数:AX存放一个加数,BX存放另一个加数
输出参数:AX存放和的绝对值
2. 在以ARRAY为首地址的数据区中存放10个带符号字数据:
ARRAY DW 1,2,-1,3,4,-2,-3,4,5,-6
编程将ARRAY分成两个数组:正数数组P_ARY和负数数组N_ARY,并分别显示正数项个数和负数项个数。