微机原理整理后.docx

上传人:b****4 文档编号:5096653 上传时间:2022-12-13 格式:DOCX 页数:12 大小:16.96KB
下载 相关 举报
微机原理整理后.docx_第1页
第1页 / 共12页
微机原理整理后.docx_第2页
第2页 / 共12页
微机原理整理后.docx_第3页
第3页 / 共12页
微机原理整理后.docx_第4页
第4页 / 共12页
微机原理整理后.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

微机原理整理后.docx

《微机原理整理后.docx》由会员分享,可在线阅读,更多相关《微机原理整理后.docx(12页珍藏版)》请在冰豆网上搜索。

微机原理整理后.docx

微机原理整理后

2012微机原理14道题目

1.在XXX单元中存放一个数x(0≤x≤15),请用查表法的方法计算x的平方,并将结果保存到YYY单元中。

课本197页

2.已知数组由100个字组成,存放在数据段中以偏移地址为ARY开始的内存中,试编写程序求出这个数组元数之和,结果存放在的数据段中以偏移地址为SUM开始的内存中。

课本184页

3.试编写一程序,将数据段中偏移地址为BUF1开始的100个数据传送到偏移地址为BUF2开始的连续内存单元中去。

STACKSEGMENTSTACK'STACK'

DW100DUP(?

STACKENDS

DATASEGMENT

BUF1DB100DUP(?

BUF2DB100DUP(?

SRCADRDW?

DSTADRDW?

LENDW?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK,ES:

DATA

MAINPROC

START:

MOVAX,DATA

MOVDS,AX

MOVES,AX

LEAAX,BUF1

MOVSRCADR,AX

MOVLEN,100

CALLMVDAT

MOVAX,4CH

INT21H

MAINENDP

MVDATPROC

MOVSI,SRCADR

MOVDI,DSTADR

MOVCX,LEN

CLD

CMPSI,DI

JADONE

STD

ADDSI,CX

DECSI

ADDDI,CX

DECDI

DONE:

REPMOVSB

RET

MVDATENDP

CODEENDS

ENDSTART

4.编写一个程序,实现SUM=a1+a2+……+a20。

已知a1~a20依次存放在以BUF为首址的数据区,每个数据占两个字节,SUM也是两个字节。

DATASEGMENT

DATDW2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2

SUMDW?

DATAENDS

CODESEGMENT

MAINPROCFAR

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVAX,0

MOVSUM,AX

MOVSI,OFFSETDAT

MOVCX,20

LP1:

ADDAX,[SI]

INCSI

INCSI

LOOPLP1

MOVSUM,AX

MOVAH,4CH

INT21H

MAINENDP

CODEENDS

ENDSTART

5.试编写一程序,将AX中的各位去反,然后统计出AX中“0”的个数,将结果存到CL中。

CODESEGMENT

MAINPROCFAR

ASSUMECS:

CODE

START:

MOVAX,0E001H

MOVDL,0

MOVCL,16

NOTAX

RETEST:

ANDAX,AX

JSSKIP

INCDL

SKIP:

SHLAX,1

LOOPRETEST

MOVCL,DL

EXIT:

MOVAH,4CH

INT21H

MAINENDP

CODEENDS

ENDSTART

6.在内存数据段存储器中,从ADDR单元开始存有一个字符串,它以“$”符号作为结束标志,试编写程序统计该字符串的长度($字符不计入长度),并把长度值存入LETH字单元。

DATASEGMENT

ADDRDB'LIUBIN$'

LETHDW?

DATAENDS

STACKSEGMENTPARASTACK'STACK'

DB100DUP(?

STACKENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

START:

MOVAX,DATA

MOVDS,AX

MOVBX,OFFSETADDR

MOVCX,0

LP:

MOVAL,[BX]

CMPAL,'$'

JEDONE

INCCX

INCBX

JMPLP

DONE:

MOVADDR,CX

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

7.试编写一程序,要求实现将ASCII码表示的两位十进制数转换为一字节二进制数,其中高地址单元存放十位数。

课本200页

8.编程在显示器上输出你自己的汉语拼音姓名的子程序。

课本155页

.9将数据0-63置入到内存中以BUF为首址的连续64个字节单元中。

课本198页

10.试编写一程序,把数组STRING中存放的20个8位二进制数分成正数数组和负数数组,并统计正数、负数和零的个数,结果分别存放到P、M、Z三个单元。

DATASEGMENT

STRINGDW2DUP(3045H,0FD34H,0D3DH,9899H,0,3DF2H,0,0FFDEH,93FDH,0DE6CH)

PDW20DUP(?

MDW20DUP(?

ZDW20DUP(?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

XORBP,BP

LEASI,P;正数

LEADI,M;负数

LEABP,Z;零

PUSHSI

PUSHDI

PUSHBP

LEABX,STRING

MOVCX,20

LL:

MOVAX,[BX]

PUSHAX

ADDAX,AX

JZL1

POPAX

PUSHAX

SALAX,1

JCL2

POPAX

MOV[SI],AX

ADDSI,2

JMPLA

LA:

ADDBX,2

LOOPLL

XORCX,CX

MOVCX,2

POPAX

MOVDX,BP

SUBDX,AX

SHRDX,CL

MOV[BP],DX

POPAX

MOVDX,DI

SUBDX,AX

SHRDX,CL

MOV[DI],DX

POPAX

MOVDX,SI

SUBDX,AX

SHRDX,CL

MOV[SI],DX

MOVAH,4CH

INT21H

L1:

POPAX

MOV[BP],AX

ADDBP,2

JMPLA

L2:

POPAX

MOV[DI],AX

ADDDI,2

JMPLA

CODENDS

ENDSTART

11、试编写一程序,完成10个一位十进制数累加,累加结果以分离式BCD码形式存放于AH(高位)、AL(低位)寄存器中。

DATASSEGMENT

TABDB41H,42H,43H,44H,45H,46H

BINDB'1101101110011110'

BUFDB4DUP(?

DATASENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS

START:

MOVAX,DATAS

MOVDS,AX

LEABX,TAB

LEASI,BIN

LEADI,BUF

MOVCX,4

LP1:

MOVAX,[SI+2]

PUSHCX

XORCX,CX

MOVCL,8

RORAX,CL

SUBAX,3030H

MOVDX,[SI]

RORDX,CL

SUBDX,3030H

SHLAH,1

ADDAH,AL

MOVCL,2

SHLDL,CL

MOVCL,3

SHLDH,CL

ADCDH,DL

ADCAH,DH

CMPAH,0AH

JBLP2

SUBAH,0AH

MOVAL,AH

XLAT

LP3:

MOV[DI],AL

ADDDI,1

ADDSI,4

POPCX

LOOPLP1

MOVAH,4CH

INT21H

LP2:

ADDAH,30H

MOVAL,AH

JMPLP3

CODESENDS

ENDSTART

12、试编写一程序,将2个字节二进制数,变换成用ASCII码表示的四位十六进制数(用四字节表示)。

DATASSEGMENT

TABDB41H,42H,43H,44H,45H,46H

BINDB'1101101110011110'

BUFDB4DUP(?

DATASENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS

START:

MOVAX,DATAS

MOVDS,AX

LEABX,TAB

LEASI,BIN

LEADI,BUF

MOVCX,4

LP1:

MOVAX,[SI+2]

PUSHCX

XORCX,CX

MOVCL,8

RORAX,CL

SUBAX,3030H

MOVDX,[SI]

RORDX,CL

SUBDX,3030H

SHLAH,1

ADDAH,AL

MOVCL,2

SHLDL,CL

MOVCL,3

SHLDH,CL

ADCDH,DL

ADCAH,DH

CMPAH,0AH

JBLP2

SUBAH,0AH

MOVAL,AH

XLAT

LP3:

MOV[DI],AL

ADDDI,1

ADDSI,4

POPCX

LOOPLP1

MOVAH,4CH

INT21H

LP2:

ADDAH,30H

MOVAL,AH

JMPLP3

CODESENDS

ENDSTART

13.试用串操作指令SCAS,在10个字节的数据块BLOCK中,搜索与2EH相等的数,若找到,则将该数地址存放于ADR中,并在SIGNAL单元中做标记0FFH;否则,SIGNAL单元中为00H。

DATASEGMENT

BLOCKDBNDUP(0)

SINGALDB00H

ADRDB00H

DATAENDS

CODESEGMENT

ASSUMEDS:

DATA,CS:

CODE,ES:

DATA

START:

MOVDIOFFSETBLOCK

CLD

MOVCX,10

MOVSL,IEH

REPNISCASB

JNZAAA

MOVSIGNAL,0FFH

MOVADR,IEH

AAA:

MOVSIGNAL,00H

CODEENDS

ENDSTART

14.编写一程序,计算100个16位正整数之和,如果和不超过16位值的范围,则保存其和到SUM,如果超过则显示“Overflow”。

DATSEGMENT

DAT1DW25DUP(2D4EH,5611H,1234H,7891H)

BUFDW?

STR1DB'overflow!

!

',0DH,0AH,'$'

DATENDS

CODSEGMENT

ASSUMECS:

COD,DS:

DAT

START:

MOVAX,DAT

MOVDS,AX

MOVSI,OFFSETDAT1

MOVBX,OFFSETBUF

MOVCX,100

XORAX,AX

L1:

ADDAX,[SI]

JCDISP

LOOPL1

MOV[BX],AX

MOVAH,4CH

INT21H

DISPPROCNEAR

MOVDX,OFFSETSTR1

MOVAH,9

INT21H

MOVAH,4CH

INT21H

DISPENDP

CODENDS

ENDSTART

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1