temp

更新时间:2023-01-04 16:21:17 阅读: 评论:0


2023年1月4日发(作者:劝君更尽一杯酒全诗)

1

一、下面每个问题均有四个供选择的答案,请划一个圈将在你认为最正确的选项前的

字母圈起来(每小题2分,本题共20分)

1.当(CX)=0时,转ZERO执行的正确指令是:

,,0

JZZEROJZZERO

,,0

JZZEROJZZERO

2.下面指令中影响PSW的CF位的指令是:

3.完成将BX清零,并使CF清零,下面错误的指令是:

,,BX

,,00H

4.不能实现当AL的值为偶数时转向LEL的指令组是:

,,01H

JZLELJZLEL

,,1

JNCLELJZLEL

5.设有伪指令:

VARDW1,2,$+2,5,6

若汇编时VAR分配的偏移地址是0010H,则汇编后0014H单元的内容是:

A.12HB.16H

C.00HD.02H

6.算术右移SAR和逻辑右移SHR两条指令执行后结果完全相同的情况是:

A.目标操作数最高位为0B.目标操作数最高位为1

C.无论什么情况都不可能相同D.目标操作数为任意情况

7.假设PSW的DF=0,对于程序段

AGAIN:MOVES:[DI],AL

INCDI

LOOPAGAIN

可以使用的相同功能命令是:

SB

ASB

8.寄存器间接寻址方式中,操作数存在于:

2

A.通用寄存器B.磁盘扇区

C.主存储单元D.输入/输出端口

9.假设VAR为符号地址,指令MOVBX,OFFSETVAR的寻址方式是:

A.直接寻址B.间接寻址

C.立即寻址D.存储器寻址

10.已知JNCrel指令的机器码是73HXXH,CF=0,(IP)=1000H,问执行该指令后,

(IP)=

A.0FFFFHB.10FEH

C.0FFEHD.10FCH

二、简答题(20分,每小题5分)

8086/8088CPU为程序员提供了8个16位的通用寄存器,它们的名称分别

是,其中的4个数据寄

存器可以把高半部分和低半部分分开来使用,用于存放8位

的操作数或进行8位的运算,此时它们的名字为:

2.现有寄存器(DS)=1000H,(SS)=1000H,(BX)=0100H,(SI)=0002H,(SP)=100H;内

存单元中的(10100H)=12H,(10101H)=34H,(10102H)=56H,(10103H)=78H,(11200H)=0A1H,

(11201H)=0B2H,(11202H)=0C3H,(11203H)=0D4H。试说明下列各指令执行完后AX寄存器

的内容。

指令AX的内容

①MOVAX,1200H①

②MOVAX,BX②

③MOVAX,[1200H]③

④MOVAX,[BX]④

⑤MOVAX,1100H[BX]⑤

⑥MOVAX,[BX][SI]⑥

⑦MOVAX,1100H[BX][SI]⑦

⑧POPAX⑧

3.写一个程序段,不用乘法指令,实现有符号数计算:BX的内容×30,并把结果保存

在寄存器BX中(不考虑溢出)

4.对于这样的程序段:

CMPAX,BX

3

JAENEXT

XCHGAX,BX

NEXT:CMPAX,CX

JAEDONE

XCHGAX,CX

DONE:┆

试回答:

①上述程序执行后,原有AX,BX,CX中最大数存放在那个寄存器?

②这三个数是带符号数还是无符号数?

三、程序填空题(10分)

下面程序从键盘输入一个0至65535间的10进制无符号数(以回车作为输入结束),然

后以16进制形式将所输入数显示出来。在括号内填写合适内容,使程序完成所要求的功能,

不能增加语句行(不考虑溢出问题)。

datagment

s1db"输入一个0~65535之间的10进制数,以回车结束$"

s2db0DH,0AH,"所输入数的16进制形式为:$"

dataends

stagmentstack

dw100hdup(?)

toplabelword

staends

codegment

assumecs:code,ds:data,es:data,ss:sta

progprocfar

movax,sta

movss,ax

movsp,offttop

()

xorax,ax

pushax

movax,data

movds,ax

movdx,offts1

movah,9

int21h

xorbx,bx

b1:movah,1

int21h

cmp(),0dh

jzb2

cmpal,30h

4

jbb1

cmpal,39h

jab1

andal,0fh

xorah,ah

xchgax,bx

movsi,10

()

addbx,ax

jmpb1

b2:movdx,offts2

movah,9

int21h

movcx,4

b3:pushcx

mov(),4

rolbx,cl

movdl,bl

anddl,0fh

adddl,30h

cmpdl,39h

jbeb4

()

b4:movah,2

int21h

popcx

loopb3

retf

progendp

codeends

endprog

四、程序设计题(50分,任选三题,全部题都完成时要指明哪三题为主做题,会根据

非主做题的完成情况适当加分,每题16分,另2分为程序整洁分)

1.在首地址为DATA的字数组中,存放了100H个16位补码数,编一个程序求出它们平均

值放在地址AVER中,并求出数组中有多少个数大于此平均值,将结果存放在COUNT中。

2.已知数据块BUFA中存放15个互不相同的字符,BUFB中存放20个互不相同的字符,编

一个程序,将既在BUFA中出现,又在BUFB中出现的字符存放到BUFC开始的缓冲区中。

指向一个字线性表,其中的首单元保存线性表的长度,编一个程序,将该线性

表中内容为0的项删除。

4.写一个程序,在屏幕或打印机上列出所有小于65535的素数(primenumber)

5

5.写一个程序实现:把内存单元F000:0000H开始的1024的字作为有符号数,分别统计

其中正数、零、负数的个数,并把结果打印出来。

附录1:部分字符ASCII(16进制数)

字符回车换行空格$012…9

ASCII0D0A2024303132…39

字符ABC…YZabc…yz

ASCII414243…595A616263…797A

附录2:部分DOS功能调用参数

功能号功能描述调用参数返回参数

1键盘输入并回显无AL=输入字符ASCII

2显示输出DL=输出字符ASCII无

5打印机输出DL=输出字符ASCII无

9显示字符串DS:DX=串首址,以$结无

束字符串

A键盘输入到缓冲区DS:DX=缓冲区首地址(DS:DX+1)=实际输入

(DS:DX)=缓冲区容量的字符个数

(DS:DX+2)开始=输入

的字符串

本文发布于:2023-01-04 16:21:17,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/90/91629.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:error什么意思
标签:temp
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图