微机原理与接口技术李珍香版课后习题4参考答案Word下载.docx

上传人:b****1 文档编号:619181 上传时间:2023-04-29 格式:DOCX 页数:16 大小:18.57KB
下载 相关 举报
微机原理与接口技术李珍香版课后习题4参考答案Word下载.docx_第1页
第1页 / 共16页
微机原理与接口技术李珍香版课后习题4参考答案Word下载.docx_第2页
第2页 / 共16页
微机原理与接口技术李珍香版课后习题4参考答案Word下载.docx_第3页
第3页 / 共16页
微机原理与接口技术李珍香版课后习题4参考答案Word下载.docx_第4页
第4页 / 共16页
微机原理与接口技术李珍香版课后习题4参考答案Word下载.docx_第5页
第5页 / 共16页
微机原理与接口技术李珍香版课后习题4参考答案Word下载.docx_第6页
第6页 / 共16页
微机原理与接口技术李珍香版课后习题4参考答案Word下载.docx_第7页
第7页 / 共16页
微机原理与接口技术李珍香版课后习题4参考答案Word下载.docx_第8页
第8页 / 共16页
微机原理与接口技术李珍香版课后习题4参考答案Word下载.docx_第9页
第9页 / 共16页
微机原理与接口技术李珍香版课后习题4参考答案Word下载.docx_第10页
第10页 / 共16页
微机原理与接口技术李珍香版课后习题4参考答案Word下载.docx_第11页
第11页 / 共16页
微机原理与接口技术李珍香版课后习题4参考答案Word下载.docx_第12页
第12页 / 共16页
微机原理与接口技术李珍香版课后习题4参考答案Word下载.docx_第13页
第13页 / 共16页
微机原理与接口技术李珍香版课后习题4参考答案Word下载.docx_第14页
第14页 / 共16页
微机原理与接口技术李珍香版课后习题4参考答案Word下载.docx_第15页
第15页 / 共16页
微机原理与接口技术李珍香版课后习题4参考答案Word下载.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机原理与接口技术李珍香版课后习题4参考答案Word下载.docx

《微机原理与接口技术李珍香版课后习题4参考答案Word下载.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术李珍香版课后习题4参考答案Word下载.docx(16页珍藏版)》请在冰点文库上搜索。

微机原理与接口技术李珍香版课后习题4参考答案Word下载.docx

ARRAYDW1000H,2000H,3000H,4000H,5000H

BUFDW?

DATAENDS

请分别完成以下操作

(1)用一条指令完成将ARRAY的偏移地址送BX

(2)用一条指令完成将ARRAY的第一字节单元内容送AL

(3)用一条指令完成将ARRAY定义的数据个数送CX

(1)LEABX,ARRAY

(2)MOVAL,BYTEPTRARRAY

(3)MOVCX,(BUF-ARRAY)/2

4.9已知一数据段中的数据定义如下:

DATASEGMENT

STR1DB1,2,3,4,5

STR2DB‘12345’

CONTEQU20

NUMBDB3DUP(6)

NUMWDW20H,-80H

TABLEDW0

试根据以上数据段的定义,指出下列每小题指令中的错误或者用得不当的指令。

(1)MOVAX,STR1;

STR1定义为字节类型,不能当字变量使用

(2)MOVBX,OFFSETNUMB

MOV[BX],’+’;

’+’为立即数,[BX]存储器操作数应明确类型

(3)MOVDL,NUMW+2;

NUMW为字类型,不能当字节变量使用

(4)MOVBX,OFFSETSTR1

MOVDH,BX+3;

源操作数“BX+3”不是正确表达式

(5)INCCONT;

INC中的操作数不能为立即数

(6)MOVSTR1,STR2;

MOV中的两个操作数不能同时为存储器操作数

(7)MOVAX,NUMW+2

MOVDX,0;

此处不应用MOV指令,而应该用CWD指令

DIVNUMW;

此处不应用DIV指令,而应该用IDIV指令

分号“;

”后面为答案

4.10编写一个汇编语言程序,将字符串“HelloWowld!

”中的全部小写字母转换为大写字母,并存放回原地址处。

参考程序:

DATASEGMENT

STRINGDB"

HelloWowld!

"

LENequ$-string

DATAENDS

codesegment

assumecs:

code,ds:

data

start:

movax,data

movds,ax

movbx,offsetstring

movcl,len

next:

moval,[bx]

cmpal,'

a'

jblop

z'

jalop

subal,20h

mov[bx],al

lop:

incbx

deccl

jnznext

movah,4ch

int21h

codeends

endstart

4.11编写一个带符号数四则运算的程序,完成(Z-(X*Y+200))/20的运算,商送V单元,余数送W单元。

这里,X,Y,Z均为16位的带符号数,内容用户自己定义。

xDW2

ydw-10

zdw300

vdw?

wdw?

movax,x

movbx,y

imulbx

movcx,200

movbx,0

addax,cx

adcdx,bx

movcx,z

subcx,ax

sbbbx,dx

xchgcx,ax

xchgbx,dx

movbx,20

idivbx

movv,ax

movw,dx

codeends

endstart

4.12编写一个汇编语言程序,完成以下要求。

从BUF单元处定义有10个带符号字数据:

-1、3、24、94、62、72、55、0、-48、99,试找出它们中的最大值和平均值,并依次分别存放至该数据区的后2个单元中(假设这10个数的和值不超过16位)。

参考程序:

bufDW-1,3,24,94,62,72,55,0,-48,99

nequ($-buf)/2

maxdw?

avedb?

?

leasi,buf

clc

xorax,ax

xordx,dx

movax,[si]

movcx,n

adcdx,[si]

cmpax,[si]

jgegoon

goon:

addsi,2

loopnext

movmax,ax

movbl,n

movax,dx

idivbl

movave,al

movave+1,ah

4.13编写一个统计分数段的子程序,要求将100分、90~99分、80~89分、70~79分、60~69分、60分以下的学生人数统计出来,并分别送往S10、S9、S8、S7、S6、S5各单元中。

(学生人数和每人的成绩由用户自己定义)

graddb77,68,82,90,54,69,72,86,91,100

s10db?

s9db?

s8db?

s7db?

s6db?

s5db?

movcx,s10-grad

callcount

countprocnear

movsi,0

moval,grad[si]

movah,0

movbx,10

divbl

cbw

movbx,ax

subbx,10

negbx

incs10[bx]

incsi

ret

countendp

4.14将AX寄存器中的16位数据分成4组(从高到低),每组4位,然后把这四组数作为数当中的低4位分别放在AL、BL、CL和DL中。

code

MOVBX,AX

MOVDX,AX

MOVCL,4

SHRAH,CL

MOVAL,AH

MOVBL,BH

ANDBL,0FH

MOVDH,DL

SHRDH,CL

MOVCL,DH

4.15设有两个16位整数变量A和B,试编写完成下述操作的程序:

(1)若两个数中有一个是奇数,则将奇数存入A中,偶数存入B中。

(2)若两个数均为奇数,则两数分别减1,并存回原变量中。

(3)若两个数均为偶数,则两变量不变。

adw?

bdw?

movax,a

movbx,b

xorax,bx

testax,0001H

jznext

testbx,0001H

jzexit

xchgbx,a

movb,bx

jmpexit

testbx,0001h

decb

deca

exit:

movah,4ch

4.16设有一段英文,其字符变量名为ENG,并以$字符结束。

试编写一程序,查找单词“is”在该文中的出现次数,并将次数显示出来。

(英文内容由用户自己定义)

ENGdb'

thisisanprogramexample$'

n1equ$-eng

strdb'

is'

n2equ$-str

data,es:

moves,ax

movcl,n1

xorch,ch

cmpcx,n2

jbedisp

moval,str

leadi,eng

cld

search:

repnescasb

jnedisp

movbl,str+1

cmpes:

[di],bl

jeexist

jcxzdisp

jmpsearch

exist:

incdl

cmpcx,1

jzdisp

jmplop

disp:

ordl,30h

movah,2

4.17请编写程序实现以下功能:

设在A、B和C单元中分别存放着一个8位带符号数。

试比较这3个数,若3个数都不是0,则求出3数之和并存放于D单元中;

若其中有一个数为0,则把其它两个单元也清零。

aDb10

bdb-10

cdb30

ddb?

cmpa,0

movdl,a

cmpb,0

jnzlop1

movb,0

movc,0

mova,0

lop1:

adddl,b

cmpc,0

adddl,c

movd,dl

4.18从键盘输入一系列字符(以回车符结束),并按字母、数字及其它字符分类计数,最后显示出这三类的计数结果。

datasegment

sdb?

;

统计字符

统计数字

odb?

统计其它字符

movah,1

cmpal,0dh

cmpal,30h

jbother

cmpal,39h

jbeshu

cmpal,41h

cmpal,5ah

jbestr

cmpal,61h

jbother

cmpal,7ah

other:

inco

shu:

incd

str:

incs

movdl,0ah

movdl,0dh

movdl,s

movdl,d

movdl,o

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 互联网

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2