汇编语言程序设计1.docx

上传人:b****3 文档编号:11772941 上传时间:2023-06-02 格式:DOCX 页数:18 大小:27.24KB
下载 相关 举报
汇编语言程序设计1.docx_第1页
第1页 / 共18页
汇编语言程序设计1.docx_第2页
第2页 / 共18页
汇编语言程序设计1.docx_第3页
第3页 / 共18页
汇编语言程序设计1.docx_第4页
第4页 / 共18页
汇编语言程序设计1.docx_第5页
第5页 / 共18页
汇编语言程序设计1.docx_第6页
第6页 / 共18页
汇编语言程序设计1.docx_第7页
第7页 / 共18页
汇编语言程序设计1.docx_第8页
第8页 / 共18页
汇编语言程序设计1.docx_第9页
第9页 / 共18页
汇编语言程序设计1.docx_第10页
第10页 / 共18页
汇编语言程序设计1.docx_第11页
第11页 / 共18页
汇编语言程序设计1.docx_第12页
第12页 / 共18页
汇编语言程序设计1.docx_第13页
第13页 / 共18页
汇编语言程序设计1.docx_第14页
第14页 / 共18页
汇编语言程序设计1.docx_第15页
第15页 / 共18页
汇编语言程序设计1.docx_第16页
第16页 / 共18页
汇编语言程序设计1.docx_第17页
第17页 / 共18页
汇编语言程序设计1.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

汇编语言程序设计1.docx

《汇编语言程序设计1.docx》由会员分享,可在线阅读,更多相关《汇编语言程序设计1.docx(18页珍藏版)》请在冰点文库上搜索。

汇编语言程序设计1.docx

汇编语言程序设计1

第五章汇编语言程序设计

1.从4000H单元开始定义数据段如下,请画出所定义存储器的分配图。

BUFSEGMENT

DAlDW3456H

DA2DB2DUP(7,8)

BUFENDS

答:

存储器的分配图

2.对于习题1的定义,请说明下列每条指令执行后的结果。

1、MOVAX,SEGDAl

2、MOVAX,SEGDA2

3、MOVBX,OFFSETDAl

4、MOVBX,OFFSETDA2

5、MOVCX,TYPEDAl

6、MOVCX,TYPEDA2

7、MOVDX,LENGTHDAl

8、MOVDX,LENGTHDA2

9、MOVAX,SIZEDAl‘

10、MOVAX,SIZEDA2

答:

1、(AX)=(DS)

2、(AX)=(DS)+2

3、(BX)=4000H

4、(BX)=4002H

5、(CX)=2

6、(CX)=1

7、(DX)=2

8、(DX)=4

9、(AX)=2

10、(AX)=4

 

3.已知数据定义如下,请计算变量PL的值是多少?

DATADB‘AB’

DATAlDB10DUP(?

PLEQU$-DATA

答:

PL=DATA+12-DATA=12

 

 

4.已知A=25、B=15、C=4,请计算下列表达式的值。

(1)A×50+B

(2)AMODC+B

(3)(A+4)×B-3(4)B/3MOD4

(5)ALEB(6)AXOR50

答:

(1)A×50+B=25×50+15=1250+15=12515

(2)AMODC+B=25MOD4+15=1+15=16

(3)(A+4)×B-3=(25+4)×15-3=1500-3=1497

(4)B/3MOD4=15/3MOD4=5MOD4=1

(5)ALEB=25LE15=0

(6)AXOR50=25XOR50=43

 

 

5.已知内存DATA单元存放一个字数据,请统计其中含有0的个数,并送人

RESULT单元的程序。

答:

程序如下:

DATA1SEGMENT

DATADW1234h

COUNTDB0

DATA1ENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA1

START:

MOVAX,DATA1

MOVDS,AX

MOVAX,DATA

MOVCX,16

LOP:

TESTAX,8000H

JNZNEXT

INCRESULT

NEXT:

ROLAX,1

LOOPLOP

INT3

CODEENDS

ENDSTART

6.已知从数据段TAB单元开始,顺序存放十六进制数0~F的ASCII码,寄存器AL中的高四位二进制数是0、低四位是1。

请设计程序:

用查表指令(XLAT)将寄存器AL中低四位的十六进制数转换为ASCII码。

答:

DATASEGMENT

TABDB'0123456789ABCDEF'

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

LEABX,TAB

XLAT

INT3

CODEENDS

ENDSTART

7.已知从数据段BUF单元开始存放一个三字节的带符号数,请设计对其求补的程序。

答:

DATASEGMENT

BUFDB97H,87H,9AH

RESDB3DUP(?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

LEABX,BUF

LEASI,RES

MOVCX,3

LOP:

MOVAL,[BX]

XORAL,0FFH

MOV[SI],AL

LOOPLOP

CLC

LEASI,RES

MOVCX,3

LOP1:

MOVAL,[SI]

ADCAL,0

MOV[SI],AL

LOOPLOP1

INT3

CODEENDS

ENDSTART

 

8.已知从数据段BUF单元开始存放字节型的带符号数X和Y,请设计计算Y=6X+8的程序。

答:

DATASEGMENT

BUFDB97H,87H;X=97H和Y=87H

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVAH,0

MOVAL,BUF

SHLAX,1

MOVBX,AX

SHLAX,1

ADDAX,BX

ADDAX,8

MOVBUF+1,AL

MOVBUF+2,AH

INT3

CODEENDS

ENDSTART

 

9.已知X、Y是字节型的无符号数,请设计程序计算:

X/4(0≤x<10)

Y=

X-10(10≤X<20)

答:

程序如下:

DATASEGMENT

XDB84H

YDB0

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVAL,X

CMPAL,10

JAENEXT

SHRAL,1

SHRAL,1

JMPEN

NEXT:

SUBAL,10

EN:

MOVY,AL

INT3

CODEENDS

10.已知从数据段BUF单元开始存放15个字节型数据,请设计程序将其中负数和零分别送往MINUS和ZERO开始的存储器单元。

答:

程序如下:

DATASEGMENT

BUFDB15DUP(?

MINUSDB15DUP(?

);存放负数

ZERODB15DUP(?

);存放0

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

ORG100H

START:

MOVAX,DATA

MOVDS,AX

LEABX,BUF

MOVCX,15

LEASI,MINUS

LEADI,ZERO

LOP:

MOVAL,[BX]

CMPAL,0

JGEPZ

MOV[SI],AL

INCSI

JMPNEXT

PZ:

JGNEXT

MOV[DI],AL

INCDI

JMPNEXT

NEXT:

INCBX

LOOPLOP

INT3

CODEENDS

ENDSTART

 

12.编一程序将字符串STR(长度20字节)中所有"&"用"$"代替。

答:

程序如下:

DATASEGMENT

STRDB'G674GH&6TR677&74Y&98'

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

LEABX,STR

MOVCX,20

LOP:

MOVAL,[BX]

CMPAL,'&'

JNZNEXT

MOVAL,'$'

MOV[BX],AL

NEXT:

INCBX

LOOPLOP

INT3

CODEENDS

ENDSTART

13.请设计程序,将存储器单元2200~2210H清0、2250H~2260H置1、22AOH~

22BOH置55H。

要求写出主程序和子程序。

解:

程序如下:

DATASEGMENT

BUF1EQU2200H

BUF2EQU2200H

BUF3EQU2200H

DATAENDS

STACKSEGMENT

DB20DUP(?

STACKENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

BEGPROCFAR

START:

MOVAX,DATA

MOVDS,AX

MOVAX,STACK

MOVSS,AX

LEABX,BUF1

MOVAL,0

CALLFMOV

LEABX,BUF2

MOVAL,1

CALLFMOV

LEABX,BUF3

MOVAL,55H

CALLFMOV

RET

STARTENDP

FMOVPROCNEAR

MOVCX,16

LOP:

MOV[BX],AL

INCBX

LOOPLOP

RET

FMOVENDP

CODEENDS

ENDBEG

 

14.编写程序,要求:

(1)键盘键入两个字符串STRING1和STRING2

(2)比较两串所含字符是否完全相同,若相同则显示‘MATCH’,若不相同则显示‘NOMATCH’。

解:

程序如下:

DATASEGMENT

STRING1DB10

DB?

DB10DUP(?

STRING2DB10

DB?

DB10DUP(?

XTDB'MATCH',13,10,'$'

BXTDB'NOMATCH',13,10,'$'

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

LEADX,STRING1

MOVAH,10

INT21H

LEADX,STRING2

MOVAH,10

INT21H

MOVAL,STRING1+1

CMPAL,STRING2+1

JNZBD

LEASI,STRING1+2

LEADI,STRING2+2

MOVCH,0

MOVCL,AL

LOP:

MOVAL,[SI]

CMPAL,[DI]

JNZBD

INCSI

INCDI

LOOPLOP

LEADX,XT

JMPDO1

BD:

LEADX,BXT

DO1:

MOVAH,9

INT21H

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

 

第六章存储器

1.计算机的内存和外存有什么区别?

答:

内存储器(主存储器)用来存放当前机器运行的程序和数据,它是计算机主机的一部分,一般把具有一定容量且速度较高的存储器作为内存储器,CPU可直接用指令对内存储器进行读写。

在微机中通常用半导体存储器作为内存储器。

外存储器用来存放当前暂时不用的程序和数据。

外存储器是存储容量大、速度较低、位于主机之外的存储器。

CPU不能直接用指令对外存储器进行读写。

要使用外存储器中的信息,必须先将它调入内存储器。

2.计算机的三级存储系统是什么?

解决了什么实际问题?

答:

在现代微机中同时采用这两种存储层次,构成cache—内存—外存三级存储系统。

这三级存储系统的形成,满足了现代微型计算机对存储系统的速度快、容量大且价格低廉的要求。

cache—内存存储系统解决了速度与成本的矛盾。

cache—内存—外存三级存储系统解决了存储器的大容量和低成本之间的矛盾。

3.半导体存储器有哪些优点?

SRAM、DRAM各有何特点?

SRAM的某一单元中

存放一个数据,如05H,CPU将其取走后,该单元的内容是什么?

答:

半导体存储器有易读易写、体积小、集成度高、速度快的优点。

DRAM的特点是必须定时刷新、集成度高、功耗低、价格便宜。

该单元的内容是05H(不变)

4.ROM、PROM、EPROM、E2PROM各有何特点?

各用于何种场合?

答:

①掩膜式ROM

用定作掩膜对存储器进行编程,一旦制造完毕,内容固定不能改变。

适合批量生产,但不适用于科研工作。

②可编程式的ROM(PROM)

PROM允许用户一次性写入,再也不可更改。

因此,不适用于科研。

③可擦除式的ROM(EPROM)

EPROM允许用户多次写入信息,写入操作由专用的写入设备完成。

写入之前应先擦除原来写人的信息。

一种擦除方式为紫外光擦除,用紫外光照射15分钟左右,芯片中的信息被擦除,成为一块“干净”的EPROM,可再次写入信息。

④电擦除式的ROM(E2PROM),即用特定的电信号对其进行擦除,可在线操作,因此很方便。

它的特点是写入时电压要求较高(一般为20V~25V),写入速度较慢而不能像RAM那样作随机存取存储器使用。

5.EPROM存储器芯片还没有写入信息时,各单元的内容是什么?

使用EPROM时

应注意什么?

答:

FFH

对EPROM的擦除和写入都有专用设备,写入之前应确保芯片是“干净”的,即为全1状态。

EPROM写入器(或称编程器)一般可对多种型号的EPROM芯片进行写入。

通过读写芯片的识别码来确认该使用什么样的编程脉冲和编程电压。

写入器由软件和硬件两部分组成,常与计算机配套工作。

6.若用4K×l位的RAM芯片组成16K×8位的存储器,需要多少芯片?

A19~A0地址线中哪些参与片内寻址?

哪些作为芯片组的片选信号?

答:

16K×8/4K×l=4×8=22×8=32片

需要32片

4K=22×210=21212根地址线A11~A0

222根地址线A13A12

7.下列RAM各需要多少条地址线进行寻址?

各需要多少条数据I/O线?

(1)512K×4

(2)1K×8

(3)16K×4(4)64K×l

答:

(1)512K×4512K=29×210=21919根地址线44根数据线

(2)1K×81K=20×210=21010根地址线88根数据线

(3)16K×416K=24×210=21414根地址线44根数据线

(4)64K×l64K=26×210=21616根地址线11根数据线

8.已知某微机控制系统中的RAM容量为4K×8位,首地址为4800H,求其最后一个单元的地址。

答:

最后一个单元的地址-首地址+1=4KB=212=1000H

∴最后一个单元的地址=4800H+1000H-1=57FFH

9.设有一个具有14位地址和8位数据的存储器,问

(1)该存储器能存储多少字节的信息?

(2)如果存储器由8K×4位RAM芯片组成,需要多少片?

(3)需要多少位地址用于芯片选择?

答:

(1)存储器的容量=214×8=16K×8=16KB∴214个字节(16384个)

(2)16K×8/8K×4=2×2=21×2=4片

(3)211根地址线A13

10.若用2114芯片组成2KBRAM,地址范围为3000H~37FFH,问地址线应如何

连接?

(假设CPU只有16条地址线、8条数据线,可用线选法和全译码法。

答:

2114芯片1K×4

2KB=2K×8/1K×4=2×8=21×8=16片

需要16片

1K=20×210=21010根地址线A9~A0

线选法:

211根地址线A10

A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0

00110000000000003000H

001100111111111133FFH

00110100000000003400H

001101111111111137FFH

 

全译码法:

16-10=6A15~A10

G2BCBA

A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0

00110000000000003000H

001100111111111133FFH

00110100000000003400H

001101111111111137FFH

 

 

11.选用6116存储芯片和74LS138译码芯片,构成其起始地址为C000H的一个2KB的RAM存储子系统(假设CPU只有16条地址线、8条数据线,用全译码法。

答:

61162K×8

2KB=2K×8/2K×8=1×1=20×1=1片需要1片

2K=21×210=21111根地址线A10~A0

全译码法:

16-11=5A15~A11

G2AG2BCBA

A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0

1100000000000000C000H

1100011111111111C7FFH

 

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

当前位置:首页 > 工作范文 > 行政公文

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

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