汇编语言程序设计试题,高手来!

汇编语言程序设计试题,高手来!,第1张

LS第10题、第12题回答错误。

1.唯一代表存储空间中每个字节单元的地址是: 物理地址。

2.JNC指令转移的测试条件是: 进位标志位复位,即CF=0(源 *** 作数不小于目的 *** 作数)。

3.将端口地址为30H中的数据传送到CPU中的指令是: IN AL,30H。

4.8086微处理系统中最多有 1024 个端口地址。

5.判断无符号数运算是否溢出,应根据 进位 标志位;而判断有符号数运算是否溢出应根据 溢出 标志位。

6.执行 INT 10H指令,可从中断向量表 40H 地址读出内容送IP,从 42H 地址单元读出内容送CS。

7.语句 ASC DB ‘1234’设置了 4 个字节。

8.某微机有16条地址线,能够覆盖的地址范围是: 0000H~0FFFFH。

9.8086CPU允许的最大存储空间为 1M字节,其地址编号从 0000H 到 FFFFH H。

10.把AX中第0、1、3位清零,应使用的指令是: AND AX,0FFF4H。

11.设寄存器位数为8位,机器数采用补码形式(含一位符号位)。对应于十进制数-73的寄存器内容为: B7H(用16进制表示)。

12.设A为字变量,指令MOV AX, A的源 *** 作数寻址方式是: 存储器直接寻址。

1.设(DS)=2000H, (ES)=3000H, (SS)=4000H, (BX)=1000H, (BP)=1000H, (SI)=0001H, (DI)=0002H, (21000H)=1234H, (21002H)=5678H, (31000H)=9ABCH, (31002H)=0DEF0H, (41000H)=3456H, (41002H)=789AH, 计算下列各指令中源 *** 作数的物理地址,并指出指令执行后AX寄存器的内容。

MOV AX, ES:[1000H]物理地址 31000H (AX)=9ABCH

MOV AX, [BX] 物理地址 21000H (AX)=1234H

MOV AX,[BP+DI] 物理地址 21002H (AX)=5678H

MOV AX, [BX][SI] 物理地址 21001H (AX)=7812H

6.在下列程序段括号中,填入正确的答案。

DATA SEGMENT

BUF DB 12H,56H

DATA ENDS

7.指出下列指令错误原因,填入括号中。

A. MOV AX,BL ;源 *** 作数与目标 *** 作数长度不同

B. MOV CS,AX ;CS寄存器不能作为目标 *** 作数

C. DEC GAMA[BX] ;必须显示指明目标 *** 作数的长度(使用BYTE PTR、WORD PTR等修饰符)

D. MOV ES,5600H ;以段寄存器作为MOV指令的目标 *** 作数时,源 *** 作数不能是立即数

E. SUB AX,DS ;段寄存器不可作为运算类指令的源 *** 作数

8.下列语句在存贮器中分别为变量分配多少字节?请填入括号中。

VR1 DW ? ;2字节

VR2 DW 4 DUP(?),2;10字节

CONT EQU 10 ;此为伪指令,CONT只是作为汇编阶段中表示数值10的标号,不是变量,因此不实际分配内存

9.设BX=1200H,SI=0002H,DS=3000H,(31200H)=50H,(31201H)=02H,(31202H)=OF7H,(31203H)=90H请写出下列各条指令单独执行后,有关寄存器及存储单元的内容,若该指令影响标志位,则指出其值。

A. DEC BYTE PTR〔1200H〕 ; 问:(31200)=4FH, CF=原来CF的值(DEC指令不影响CF标志)

B. SAR BYTE PTR [SI+1200H],1; 问:(31202H)=FBH,ZF=0

C. MOV AX,WORD PTR〔BX+SI〕;问:AX=90F7H,SF=原来SF的值(MOV指令不影响标志位)

2.每组写一条程序指令,使: (6分)

A. BX寄存器的低四位置1 OR BX,000FH 或者 OR BL,0FH

B. AX寄存器的低四位清0 AND AX,0FFF0H 或者 AND AL,0F0H

C. 用TEST指令测试DL寄存器的第3位和第6位是否同时为0。 TEST DL,01001000b(若结果ZF=0表示两者同时为0)

3.在某子程序的开始处要保护AX,BX,CX,DX四个寄存器信息,在子程序结束时要恢复这四个寄存器信息。例如: (4分)

保护现场

PUSH AX

PUSH BX

PUSH CX

PUSH DX

恢复现场

试写出恢复现场时的指令序列。

POP DX

POP CX

POP BX

POP AX

1.对于下面的数据定义,各条MOV的指令单独执行后,有关寄存器的内容是什么?(5分)

FLDB DB ?

TAB1 DW 20 DUP(?)

TAB2 DB ‘ABCD’

(A) MOV AX,TYPE FLDBAX=1

(B) MOV AX,TYPE TAB1AX=2

(C) MOV CX,LENGTH TAB1 CX=20

(D) MOV DX,SIZE TAB1DX=40

(E) MOV CX,LENGTH TAB2 CX=1

下面程序段执行完后,AL的内容是什么? (5分)

MOV AL,10

ADD AL,AL

SHL AL,1

MOV BL,AL

SHL AL,1

ADD AL,BL

结果AL=0C0H

3试问下面的程序段完成的功能是什么? (5分)

SAL AX,1

RCL DX,1

5.已知程序段:

STRING DB ‘ABCDEFGHIJ’

MOV AH,01 ;从键盘输入字符1~9

INT 21H

AND AL,0FH

DEC AL

XOR AH,AH

MOV BX,OFFSET STRING

ADD BX,AX

MOV DL,[BX]

MOV AH,02H ;显示输出

INT 21H

试回答: (1)上述程序段的功能是什么?

(2)如从键盘输入字符‘4’,程序段有什么结果?(6分)

答:(1)上述程序段功能是从键盘输入一个字符,假定该字符是1-9,则输出STRING中这个数值所对应的字母(1对应A,2对应B……)

(2)输入4则输出D


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11094418.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存