整理微型计算机原理与接口技术.docx
- 文档编号:24736972
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:39
- 大小:28.06KB
整理微型计算机原理与接口技术.docx
《整理微型计算机原理与接口技术.docx》由会员分享,可在线阅读,更多相关《整理微型计算机原理与接口技术.docx(39页珍藏版)》请在冰豆网上搜索。
整理微型计算机原理与接口技术
(6)列出选定的评价方法,并作简单介绍。
以森林为例,木材、药品、休闲娱乐、植物基因、教育、人类住区等都是森林的直接使用价值。
3)规划实施的经济效益、社会效益与环境效益之间以及当前利益与长远利益之间的关系。
1.建设项目环境影响报告书的内容
(2)辨识和分析评价对象可能存在的各种危险、有害因素,分析危险、有害因素发生作用的途径及其变化规律。
综合性规划
(1)土地利用的有关规划;
(3)专项规划环境影响报告书的内容。
除包括上述内容外,还应当包括环境影响评价结论。
主要包括规划草案的环境合理性和可行性,预防或者减轻不良环境影响的对策和措施的合理性与有效性,以及规划草案的调整建议。
二、安全预评价
(1)可能造成重大环境影响的建设项目,编制环境影响报告书,对产生的环境影响应进行全面评价;
第一节 环境影响评价4.9练习题
10、写一个宏定义,要求能把任意一个寄存器的最低位移至另一个存储器的最高位中。
DATASEGMENT
VAR1DB4,6
VAR2DD200DUP(?
)
DATAENDS
STACKSSEGMENT
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATA,SS:
STACKS
START:
MOVAX,DATA
MOVDS,AX
XTYMACROX,Y
MOVAX,X
ANDAX,1
RORAX,1
MOVY,AX
ENDM
MOVDX,1
MOVAX,0
XTYDX,AX,
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
11、利用DOS功能调用从键盘输入60个字符到缓冲区BUF中,在按下ENTER键后在屏幕上显示这些字符。
请写出程序段。
DATASEGMENT
ST1DB'Pleaseinput60charactersfromkeyboard.',0DH,0AH,'$'
BUFDB61DUP(?
)
DATAENDS
CODSEGMENT
ASSUMECS:
COD,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVDL,07H
MOVAH,2
INT21H
MOVDX,OFFSETST1
MOVAH,9
INT21H
LEASI,BUF
MOVCX,60
LP:
MOVAH,7
INT21H
MOV[SI],AL
CMPAL,0DH
JZEXIT
INCSI
LOOPLP
EXIT:
MOVBX,60
SUBBX,CX
MOVCX,BX
LEASI,BUF
LP2:
MOVDL,[SI]
MOVAH,6
INT21H
INCSI
LOOPLP2
MOVAH,4CH
INT21H
CODENDS
ENDSTART
12、试写一段程序,要求先给出一声铃响提示,屏幕上显示:
“Pleaseinputaalphabet:
”,然后从键盘输入一个字母送BL。
DATASSEGMENT
ST1DB'PleaseInputaalphabet:
',0DH,0AH,'$'
ST2DB?
DATASENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS
START:
MOVAX,DATAS
MOVDS,AX
MOVDL,7
MOVAH,2
INT21H
MOVDX,OFFSETST1
MOVAH,9
INT21H
MOVAH,1
INT21H
MOVBL,AL
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
第五章汇编语言程序设计
例5-1:
试用8086CPU的指令实现Y=(X1+X2)/2的程序设计。
DATASSEGMENT
X1DB34H
X2DB89H
YDW?
DATASENDS
STACKSSEGMENT
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
MOVAX,0
MOVAL,X1
MOVBL,X2
ADDAL,BL
ADCAH,0
SARAX,1
MOV[Y],AX
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
例5-1(老书):
编制实现两个三十二位数相乘的程序。
DATASEGMENT
MULNUMDW1234H
DW0B8FDH
DW0DFE6H
DW78FFH
DW4DUP(?
)
DATAENDS
CODSEGMENT
ASSUMECS:
COD,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
XORAX,AX
LEABX,MULNUM
MUL32:
MOVAX,[BX]
MOVSI,[BX+4]
MOVDI,[BX+6]
MULSI;B*d
MOV[BX+8],AX
MOV[BX+0AH],DX
MULDI;B*C
ADDAX,[BX+0AH]
ADCDX,0
MOV[BX+0AH],AX
MOV[BX+0CH],DX
XORAX,AX
XORDX,DX
MOVAX,[BX+2]
MULSI;A*D
ADDAX,[BX+0AH]
ADCDX,[BX+0CH]
PUSHF
MOVAX,[BX+0AH]
MOVDX,[BX+0CH]
XORAX,AX
XORDX,DX
MOVAX,[BX+2]
MULDI;A*C
POPF
ADCAX,[BX+0CH]
ADCDX,0
MOV[BX+0CH],AX
MOV[BX+0EH],DX
XORAX,AX
MOVAH,4CH
INT21H
CODENDS
ENDSTART
例5-2:
将一位十六进制数转换成与它相对应的ASCII码。
DATASSEGMENT
TAB
DB30H,31H,32H,33H,34H,35H,36H,37H
DB38H,39H,41H,42H,43H,44H,45H,46H
HEXDB8
ASCDB?
DATASENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS
START:
MOVAX,DATAS
MOVDS,AX
MOVBX,OFFSETTAB
MOVAL,HEX
XLAT
MOVASC,AL
MOVAX,4C00H
INT21H
CODESENDS
ENDSTART
例5-3:
要求对不足250个的学生成绩进行统计分析,统计出优秀、及格和不及格的人数。
DATASSEGMENT
BUFDB15
DB64,78,89,55,69,98,45,67,96,99,92,89,85,91,45
NUMDB3DUP(?
)
DATASENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
MOVSI,OFFSETBUF
MOVCH,[SI]
MOVCL,0
MOVBX,0
INCSI
LP:
MOVAH,[SI]
CMPAH,90
JBBLOW90
INCBH
NEXT:
INCSI
DECCH
JNZLP
MOVSI,OFFSETNUM
MOV[SI],BH
MOV[SI+1],BL
MOV[SI+2],CL
MOVAH,4CH
INT21H
BLOW90:
CMPAH,60
JBBLOW60
JMPABOV60
ABOV60:
INCBL
JMPNEXT
BLOW60:
INCCL
JMPNEXT
CODESENDS
ENDSTART
例5-5利用表内地址跳转法来实现使键盘上A、B、C、D4个字母键成为4条输入命令,使之分别对应4个具有不同算法的控制子程序。
DATASSEGMENT
BASEDB'pa','pb','pc','pd'
KEYDB?
DATASENDS
STACKSSEGMENT
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
LOP:
XORAX,AX
MOVAH,1
INT21H
CMPAL,41H
JBLOP
CMPAL,44H
JALOP
SUBAL,41H
MOVBX,OFFSETKEY
MOVAH,0
ADDBX,AX
JMPWORDPTR[BX]
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
例5-6:
试编写一程序,统计出某一字数据中“1”的个数。
DATSEGMENT
XDADW3AD8H
CONTDB?
DATENDS
CODSEGMENT
ASSUMECS:
COD,DS:
DAT
START:
MOVAX,DAT
MOVDS,AX
MOVCL,0
MOVAX,XDA
LOP:
CMPAX,0
JZEXIT
SHLAX,1
JNCNEXT
INCCL
NEXT:
JMPLOP
EXIT:
MOVCONT,CL
INT20H
CODENDS
ENDSTART
例5-7:
编写程序将两个n字节的无符号数相加,结果存入SUM开始的n+1字节存储区中。
DATSEGMENT
DAT1DB12H,34H,56H,71H,23H,45H,67H
DAT2DB76H,54H,32H,17H,65H,43H,21H
SUMDB8DUP(?
)
DATENDS
CODSEGMENT
ASSUMECS:
COD,DS:
DAT
START:
MOVAX,DAT
MOVDS,AX
XORAX,AX
MOVBX,OFFSETDAT1
MOVSI,OFFSETDAT2
LEADI,SUM
MOVCX,7
CLC
LP:
MOVAL,[SI]
ADCAL,[BX]
MOV[DI],AL
INCBX
INCSI
INCDI
LOOPLP
ADCBYTEPTR[DI],0
MOVAH,4CH
INT21H
CODENDS
ENDSTART
例5-8:
编制程序用单字符输出的DOS功能调用向屏幕输出以“%”结束的字符串。
DATSEGMENT
ST1DB'Howareyou?
%'
DATENDS
CODSEGMENT
ASSUMECS:
COD,DS:
DAT
START:
MOVAX,DAT
MOVDS,AX
LEASI,ST1
AGAIN:
MOVDL,[SI]
CMPDL,'%'
JZENDOUT
MOVAH,2
INT21H
INCSI
JMPAGAIN
ENDOUT:
MOVAH,4CH
INT21H
CODENDS
ENDSTART
例5-9:
设有16个内存单元需要修改,修改规律是第1、3、6、9、12号单元均加5,其余单元均加10,试用循环结构变成实现。
DATASSEGMENT
XDADB16DUP(?
)
LRULERDW0A490H
DATASENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS
START:
MOVAX,DATAS
MOVDS,AX
MOVSI,0
MOVCX,16
MOVBX,OFFSETXDA
MOVDX,LRULER
AGAIN:
MOVAX,BX[SI]
SHLDX,1
JCADD5
ADDAX,10
JMPSHORTRESULT
ADD5:
ADDAX,5
RESULT:
MOVBX[SI],AX
INCSI
LOOPAGAIN
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
例5-10:
设某一数组的长度为N,各元素均为字数据,试编制一个程序使该数组中的数据按照从小到大的次序排列。
DATASSEGMENT
DATDB25,68,86,98,34,67,12,4,49,27
DATASENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS
START:
MOVAX,DATAS
MOVDS,AX
MOVBX,0
MOVCX,10
DECCX
LOP1:
MOVDX,CX
LOP2:
MOVAL,DAT[BX]
CMPAL,DAT[BX+1]
JBECONTI
XCHGAL,DAT[BX+1]
MOVDAT[BX],AL
CONTI:
ADDBX,1
LOOPLOP2
MOVCX,DX
MOVBX,0
LOOPLOP1
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
例5-11:
定义一个显示两个十六进制数的子程序:
DATASSEGMENT
BUFDB12H
DATASENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS
START:
MOVAX,DATAS
MOVDS,AX
LEASI,BUF
MOVBL,[SI]
CALLDISPP
MOVAH,4CH
INT21H
DISPPPROCNEAR
PUSHDX
PUSHCX
MOVDL,BL
MOVCL,4
ROLDL,CL
ANDDL,0FH
CALLDISP1
MOVDL,BL
ANDDL,0FH
CALLDISP1
POPCX
POPDX
RET
DISPPENDP
DISP1PROCNEAR
ORDL,30H
CMPDL,3AH
JBDDD
ADDDL,07H
DDD:
MOVAH,2
INT21H
RET
DISP1ENDP
CODESENDS
ENDSTART
例5-12:
编制显示四位十六进制数的子程序。
DATASSEGMENT
BUFDW1234H
DATASENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
LEASI,BUF
MOVAX,[SI]
CALLDISP4
MOVAH,4CH
INT21H
DISP4PROCNEAR
PUSHBX
PUSHCX
PUSHDX
PUSHAX
MOVAL,AH
CALLDISP2
POPAX
CALLDISP2
POPDX
POPCX
POPBX
RET
DISP4ENDP
DISP2PROCNEAR
MOVBL,AL
MOVDL,AL
MOVCL,4
ROLDL,CL
ANDDL,0FH
CALLDISP1
MOVDL,BL
ANDDL,0FH
CALLDISP1
RET
DISP2ENDP
DISP1PROC
ORDL,30H
CMPDL,3AH
JBDDD
ADDDL,07H
DDD:
MOVAH,2
INT21H
RET
DISP1ENDP
CODESENDS
ENDSTART
例5-13:
已知数组由100个字数据组成,试变成求出这个数组元素之和。
DATASSEGMENT
ARYDW25DUP(12H,5DH,3CH,7AH)
SUMDW?
DATASENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
CALLRADD
MOVAH,4CH
INT21H
RADDPROCNEAR
PUSHAX
PUSHBX
PUSHCX
PUSHDX
LEABX,ARY
MOVCX,100
XORAX,AX
MOVDX,AX
CL1:
ADDAX,[BX]
JNCCL2
INCDX
CL2:
ADDBX,2
LOOPCL1
MOVSUM,AX
MOVSUM+2,DX
POPDX
POPCX
POPBX
POPAX
RET
RADDENDP
CODESENDS
ENDSTART
例5-14:
已知数组A由100个字数据组成,数组B由50个字数据组成,试编程分别求出这两个数组元素之和。
DATASSEGMENT
CADW100
ARADW20DUP(34H,5FH,8DH,4AH,9BH)
SADD?
CBDW50
ARBDW10DUP(3DH,4CH,2EH,88H,1CH)
SBDD?
TABDW3DUP(?
)
DATASENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
MOVAX,OFFSETCA
MOVTAB,AX
MOVAX,OFFSETARA
MOVTAB[2],AX
MOVAX,OFFSETSA
MOVTAB[4],AX
MOVSI,OFFSETTAB
CALLRADD
MOVAX,OFFSETCB
MOVTAB,AX
MOVAX,OFFSETARB
MOVTAB[2],AX
MOVAX,OFFSETSB
MOVTAB[4],AX
MOVSI,OFFSETTAB
CALLRADD
MOVAH,4CH
INT21H
RADDPROCNEAR
MOVBX,[SI]
MOVCX,[BX]
MOVBX,[SI+2]
MOVDI,[SI+4]
XORAX,AX
MOVDX,AX
CL1:
ADDAX,[BX]
JNCCL2
INCDX
CL2:
ADDBX,2
LOOPCL1
MOV[DI],AX
MOV[DI+2],DX
RET
RADDENDP
CODESENDS
ENDSTART
5.8练习题(新书)
3、编程题
(1)试编写一程序,把数组STRING中存放的20个8位二进制数分成正整数组和负数数组,并统计正数、负数和零的个数,结果分别存放到P、M、Z三个单元。
DATSEGMENT
STRINGDW2DUP(3045H,0FD34H,0D3DH,9899H,0,3DF2H,0,0FFDEH,93FDH,0DE6CH)
PDW20DUP(?
)
MDW20DUP(?
)
ZDW20DUP(?
)
DATENDS
CODSEGMENT
ASSUMECS:
COD,DS:
DAT
START:
MOVAX,DAT
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
(2)试编写一个程序,完成10个一位十进制数累加,累加结果以分离式BCD码形式存放于AH(高位),AL(低位)寄存器。
DATSEGMENT
D1DB2,3,4,5,6,7,8,3,4,5
D2DB?
DATENDS
CODSEGMENT
ASSUMECS:
COD,DS:
DAT
START:
MOVAX,DAT
MOVDS,AX
LEASI,D1
XORAX,AX
MOVCX,10
L1:
ADDAL,[SI]
AAA
INCSI
LOOPL1
MOVAH,4CH
INT21H
CODENDS
ENDSTART
(3)试编写一程序,将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
A
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 整理 微型计算机 原理 接口 技术