我有份汇编的试卷,大家能帮我写一下正确答案吗?

l_ljm 2003-06-26 08:39:12
一. 单选题
下列寄存器中,程序不可见寄存器是()。
1、A.CS B. IP C. SP D.BP

2、指令ADD ES:[DI],AX 和存放在()。
A.寄存器 B. 附加段 C. 堆栈段 D. 代码段

3、下列四组寄存器中,在段内寻址时可以提供偏移地址的寄存器组是()。
A.AX,BX,CX,DX B. BP,SP,IP,CS
C. BX,BP,SI,DI D. BH,BL,CH,CL

4、MOV BUF[BX],AX 该指令中目的操作数寻址方式是()。
A.寄存器 B. 寄存器间接 C. 基址变址 D. 寄存器相对

5、已知(DS)=3000H,(SS)=2500H,(BX)=0100H,(BP)=0040H,指令MOV AX,DS:[BP]源操作数的物理地址是()。
A.25040H B. 30040H C.25100H D. 55040H

6、在汇编语言上机过程中,把若干个模块连接起来成为可执行文件的系统程序是()。
A.汇编程序 B.连接程序 C.调试程序 D.以上都是

7、下列传送指令中,有语法错误的指令是()。
A.MOV CS,AX B. MOV DS,AX C. MOV ES,AX D. MOV SS,AX

8、设VAR是数据段中定义的字节变量,指令MUL VAR乘积存放在()。
A.AX B. BX C. CX D.DX

9、定义缓冲区BUF,保留100个字节存储空间的语句是()。
A.BUF DB 100 B. BUF DW 100
C. BUF DW 100 DUP(?) D. BUF DB 100 DUP(?)

10、设(DH)=20H,执行NEG DH指令后,正确的结果是(     )。
A.(DH)=20H B.(DH)=20H C.(DH)=0E0H D.(DH)=0E0H
CF=1 CF=0 CF=0 CF=1

11、8086/8088系统中,存储器是分段组织的,存储器物理地址计算式是()。
A.段地址+偏移地址 B. 段地址*10H+偏移地址
C. 段地址*16H+偏移地址 D. 段地址+10H*偏移地址

12、当用DOS系统功能调用2显示一个字符时,字符的ASCII码一定要在( )寄存器中。
A.AL B.BL C.CL D.DL

13、在串指令REP MOVSB中,重复次数一定放在(   )寄存器中。
A.AX B.BX C.CX D.DX

14.下列指令执行后,ZF=1的指令是()。
A.MOV AX,0 B. OR AX,0 C. XOR AX,AX D. CMP AX,0


二.填空题
1.一字节无符号数能表达的数值范围是 ,加法运算中,若和溢出范围,此时 标志位1,则有效的和至少是 位二进制数。

2.设VAR是数据段中定义的变量,与指令LEA BX,VAR 等效的指令

3.已知(AL)=85H,执行SAR AL,1 (AL)=

4.书写汇编语言程序时规定:十六进制数后面跟字母 ,若第一个是字母A-F,必须加

5.一字节数据是 位二进制数,8086/8088系统存储器最大寻址空间是 。

6.在程序执行过程中,堆栈段的段地址放在 寄存器中,执行PUSH或POP指令时,偏移地址放在 寄存器中。

7.下列六条指令中,正确的是 两句。
A.MOV SAVE,ES B. INC [SI] C. IDIV AX,5
D.MOV AX,[DX] E. MUL AX,4 F. ADD BX,OFFSET VAR

8.已知(DS)=2A00H,(ES)=2B00H,(BX)=001AH,(BP)=0200H,(SS)=3000H,
计算下列指令源操作数的物理地址,指出寻址方式。
(1)MOV AX,ES:[BP+8] 物理地址 ,寻址方式
(2)ADD DX,[BX] 物理地址 ,寻址方式

9.在汇编语言上机过程中,首先用 建立扩展名ASM的源程序文件,再用 源文件进行汇编,建立扩展名为OBJ的目标程序文件,最后用 进行连接,建立扩展名为EXE的可执行文件。

三.简答题
1.按下列要求写出合适的语句,每小题写一条指令。
(1) 定义ERR为字符串‘INVALID!’值。
(2) 将CX寄存器低4位清零。
(3) 用BP和DI的基址变址寻址,将附加段中一个字传送到CX寄存器。

2. ARRAY DW ‘AB’ ,-2,3dup(1,0)
LEN EQU $-ARRAY
(1) 画出从ARRAY开始的5个字节存储分配图。
(2) LEN=

3.执行下列指令语句,把执行结果填在空格中。
已知(DS)=5000H,(BX)=0100H,(DI)=0002H,(50100H)=45H,(50101H)=68H,
(50102H)=0A1H,(50103H)=14H
先执行MOV AX,[100H] (AX)= ;
再执行ADD AX,[BX+DI] (AX)= ,CF= ,OF= 。

四 程序分析题
1. 已知(AX)=0FF60H,CF=1
MOV DX,96
XOR DH,0FFH
SBB AX,DX
执行上述指令序列后(AX)= ,CF=
2. MOV AX,10
ADD AX,AX
MOV BX,AX
MOV CL,2
SHL AX,CL
ADD AX,BX
上述程序段执行后(AX)= ,(BX)=
3. MOV AX,0C100H
MOV BX,8FC0H
SUB AX,BX
JNC L1
JNO L2
JMP SHORT L3
程序执行后,(AX)= ,程序转向

五 程序填空
1、 下列程序段求数组ARRAY的累加和。请将程序填写完整。
ARY DW 45H,68H,………….,0ABC1H,9600H;共10项
COUNT DW 10

MOV CX,COUNT
XOR AX,AX
AGAIN:ADD AX,[SI]
ADD SI,2

HLT
2. 下列程序测试DL寄存器D6和D2位。若同时为0,转ZERO,置AX为0,否则转NON_ZERO,置AX为1。
TEST DL,
JZ ZERO
NO ZERO:MOV AX,1

ZERO:MOV AX,0
EXIT:


六.程序设计

1. 设X,Y,Z,W存放16位带符号数,编程计算:
W〈—X*Y-Z
要求:写出有关指令语句。

2. 已知ARRAY DW 1200,-69H,798AH,………432BH;共10项
编程统计正数项个数存入PLUS单元中。
要求:程序完整,可上机调试
...全文
593 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
hotrain 2003-07-03
  • 打赏
  • 举报
回复
以下是我做的题,不知道正确否?

三.简答题
1.按下列要求写出合适的语句,每小题写一条指令。
(1) 定义ERR为字符串‘INVALID!’值。
ERR DB 'INVALID!','$'
(2) 将CX寄存器低4位清零。
AND CX, 0FFF0H
(3) 用BP和DI的基址变址寻址,将附加段中一个字传送到CX寄存器。
MOV CX,[BP+DI]

2. ARRAY DW ‘AB’ ,-2,3dup(1,0)
LEN EQU $-ARRAY
(1) 画出从ARRAY开始的5个字节存储分配图。
'B','A',FE,FF,01 注意DWORD型的存储分配。
(2) LEN=
0010H

3.执行下列指令语句,把执行结果填在空格中。
已知(DS)=5000H,(BX)=0100H,(DI)=0002H,(50100H)=45H,(50101H)=68H,
(50102H)=0A1H,(50103H)=14H
先执行MOV AX,[100H] (AX)= 45H ;
再执行ADD AX,[BX+DI] (AX)= E6 ,CF= 0 ,OF= 0 。

四 程序分析题
1. 已知(AX)=0FF60H,CF=1
MOV DX,96
XOR DH,0FFH
SBB AX,DX
执行上述指令序列后(AX)= 0 ,CF= 0
2. MOV AX,10
ADD AX,AX
MOV BX,AX
MOV CL,2
SHL AX,CL
ADD AX,BX
上述程序段执行后(AX)= 64h ,(BX)= 14h
3. MOV AX,0C100H
MOV BX,8FC0H
SUB AX,BX
JNC L1
JNO L2
JMP SHORT L3
程序执行后,(AX)= 3140H ,程序转向 L1

五 程序填空
1、 下列程序段求数组ARRAY的累加和。请将程序填写完整。
ARY DW 45H,68H,………….,0ABC1H,9600H;共10项
COUNT DW 10

MOV CX,COUNT
XOR AX,AX
AGAIN:ADD AX,[SI]
ADD SI,2
loop again ;此处为填空内容
HLT
2. 下列程序测试DL寄存器D6和D2位。若同时为0,转ZERO,置AX为0,否则转NON_ZERO,置AX为1。
TEST DL,44h ;此行为填空内容
JZ ZERO
NO ZERO:MOV AX,1

ZERO:MOV AX,0
EXIT:


六.程序设计

1. 设X,Y,Z,W存放16位带符号数,编程计算:
W〈—X*Y-Z
要求:写出有关指令语句。

MOV AX,X
IMUL Y
SUB AX,Z
SBB DX,0
MOV BYTE PTR W,AX
MOV BYTE PTR W[2],DX
(此题根据我的理解,W应该是一个双字才对,因为16位乘法得到的应该是一个32位的数)

2. 已知ARRAY DW 1200,-69H,798AH,………432BH;共10项
编程统计正数项个数存入PLUS单元中。
要求:程序完整,可上机调试

(注意:此程序没有在屏幕上输出结果的功能,请在DEBUG中查看结果)
dseg segment
array dw 1,-2,3,-4,5,-6,7,8,9,10
plus dw ?
dseg ends

cseg segment
assume cs:cseg,ds:dseg

start:
mov ax,dseg
mov ds,ax ;设置段寄存器

mov bx,offset array
mov cx,10
xor ax,ax
next:
cmp [bx],0 ;比较是否大于0
jle no
inc ax ;如果大于0,则AX加1
no:
add bx,2
loop next ;循环

mov plus,ax ;保存结果

mov ah,4ch ;退出
int 21h
cseg ends
end start


comefirst 2003-07-02
  • 打赏
  • 举报
回复
不过看了几题zfive5(醉马不肖) 的做的不好,很多错的哦
comefirst 2003-07-02
  • 打赏
  • 举报
回复
汇编学的不是很好,学了一年了,忘记不少,帮你继续顶
天外怪魔 2003-07-02
  • 打赏
  • 举报
回复
一、选择题:
1:B. IP是指令指针寄存器,对程序不可见。
2:B. 结果存放在目标操作数,ES:[DI]。
3:C. 这是汇编的约定,不用我解释了吧?
4:C. BUF表示为某一内存块,排除法都可以确定答案。
5:B. 根据8086指令特点,物理地址=段地址左移16位+偏移量。
6:B. 把源文件变成目标文件的是才汇编程序。
7:A. 不能对代码段寄存器CS赋值。
8:A. 根据MUL指令的约定,结果存放在AX中。
9:D. A定义了1个字节的空间,里面存放了100这个数。
B定义了1个字的空间,里面存放了100这个数。
C定义了100个字的空间,内容保留。
D为正确答案。
10:D. NEG为求补指令,结果中应存放-20的补码。并置进位标志CF。
11:B. 这题不用解释了吧,小心别看错就行了:)
12:B. DOS中断,功能号2的调用。
13:C. 所有的带次数循环,计数器一律为CX(CL)。CX本身的含义就是
计数积存器。(Count Register)
14:C. 该题容易误选A(请注意MOV指令不会影响标志位)。

二.填空题
1.一字节无符号数能表达的数值范围是 0~255 ,加法运算中,若和溢出范

围,此时 OF 标志位1,则有效的和至少是 位二进制数。

2.设VAR是数据段中定义的变量,与指令LEA BX,VAR 等效的指令

MOV BX OFFSET VAR

3.已知(AL)=85H,执行SAR AL,1 (AL)=42H

4.书写汇编语言程序时规定:十六进制数后面跟字母 H ,若第一

个是字母A-F,必须加 0

5.一字节数据是 8 位二进制数,8086/8088系统存储器最大寻址空

间是 1M 。

6.在程序执行过程中,堆栈段的段地址放在 SS 寄存器中,执行

PUSH或POP指令时,偏移地址放在 SP 寄存器中。

7.下列六条指令中,正确的是 DE 两句。
A.MOV SAVE,ES B. INC [SI] C. IDIV AX,5
D.MOV AX,[DX] E. MUL AX,4 F. ADD BX,OFFSET VAR

8.已知(DS)=2A00H,(ES)=2B00H,(BX)=001AH,(BP)=0200H,(SS

)=3000H,
计算下列指令源操作数的物理地址,指出寻址方式。
(1)MOV AX,ES:[BP+8] 物理地址 2B0208H ,寻址方


(2)ADD DX,[BX] 物理地址 0001AH ,寻址方式



9.在汇编语言上机过程中,首先用 EDIT 建立扩展名ASM的源

程序文件,再用 MASM 源文件进行汇编,建立扩展名为OBJ的目标程序文件

,最后用 LINK 进行连接,建立扩展名为EXE的可执

行文件。

hotrain 2003-07-02
  • 打赏
  • 举报
回复
楼主等一下,我回去再做吧。
明天发上来。
fbmsf 2003-07-01
  • 打赏
  • 举报
回复
1 B 10
10 =E0 CF我不知道。
11 B
zyoujie 2003-06-30
  • 打赏
  • 举报
回复
up
l_ljm 2003-06-30
  • 打赏
  • 举报
回复
ruihuahan(飞不起来的笨鸟) ,帮我看一下吧。
l_ljm 2003-06-30
  • 打赏
  • 举报
回复
哎,第一个选择是就错了呀
醉马不肖 2003-06-26
  • 打赏
  • 举报
回复
?
三年没有使用asm,可能不好吧,如果你说我不该答,我已经意识到了
ruihuahan 2003-06-26
  • 打赏
  • 举报
回复
zfive5(醉马不肖)
答的不好。
曾经的猎狐 2003-06-26
  • 打赏
  • 举报
回复
晕死,又一个跑这来要作业的
guanjinke 2003-06-26
  • 打赏
  • 举报
回复
都忘的差不多了
patricklee01 2003-06-26
  • 打赏
  • 举报
回复
幫你up
醉马不肖 2003-06-26
  • 打赏
  • 举报
回复
一. 单选题
下列寄存器中,程序不可见寄存器是(C)。
1、A.CS B. IP C. SP D.BP

2、指令ADD ES:[DI],AX 和存放在(B)。
A.寄存器 B. 附加段 C. 堆栈段 D. 代码段

3、下列四组寄存器中,在段内寻址时可以提供偏移地址的寄存器组是(A)。
A.AX,BX,CX,DX B. BP,SP,IP,CS
C. BX,BP,SI,DI D. BH,BL,CH,CL

4、MOV BUF[BX],AX 该指令中目的操作数寻址方式是(C)。
A.寄存器 B. 寄存器间接 C. 基址变址 D. 寄存器相对

5、已知(DS)=3000H,(SS)=2500H,(BX)=0100H,(BP)=0040H,指令MOV AX,DS:[BP]源操作数的物理地址是(B)。
A.25040H B. 30040H C.25100H D. 55040H

6、在汇编语言上机过程中,把若干个模块连接起来成为可执行文件的系统程序是(B)。
A.汇编程序 B.连接程序 C.调试程序 D.以上都是

7、下列传送指令中,有语法错误的指令是(A)。
A.MOV CS,AX B. MOV DS,AX C. MOV ES,AX D. MOV SS,AX

8、设VAR是数据段中定义的字节变量,指令MUL VAR乘积存放在(A)。
A.AX B. BX C. CX D.DX

9、定义缓冲区BUF,保留100个字节存储空间的语句是(D)。
A.BUF DB 100 B. BUF DW 100
C. BUF DW 100 DUP(?) D. BUF DB 100 DUP(?)

10、设(DH)=20H,执行NEG DH指令后,正确的结果是(     )。
A.(DH)=20H B.(DH)=20H C.(DH)=0E0H D.(DH)=0E0H
CF=1 CF=0 CF=0 CF=1

11、8086/8088系统中,存储器是分段组织的,存储器物理地址计算式是(C)。
A.段地址+偏移地址 B. 段地址*10H+偏移地址
C. 段地址*16H+偏移地址 D. 段地址+10H*偏移地址

12、当用DOS系统功能调用2显示一个字符时,字符的ASCII码一定要在( D )寄存器中。
A.AL B.BL C.CL D.DL

13、在串指令REP MOVSB中,重复次数一定放在( C  )寄存器中。
A.AX B.BX C.CX D.DX

14.下列指令执行后,ZF=1的指令是(C)。
A.MOV AX,0 B. OR AX,0 C. XOR AX,AX D. CMP AX,0

一部分
matlab7 2003-06-26
  • 打赏
  • 举报
回复
怎么跟CASL 
不同?
tchatcha 2003-06-26
  • 打赏
  • 举报
回复
狂顶!

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧