微机原理及接口技术_第4章__8086汇编语言程序设计

微机原理及接口技术_第4章__8086汇编语言程序设计

ID:6738520

大小:40.50 KB

页数:11页

时间:2018-01-24

微机原理及接口技术_第4章__8086汇编语言程序设计_第1页
微机原理及接口技术_第4章__8086汇编语言程序设计_第2页
微机原理及接口技术_第4章__8086汇编语言程序设计_第3页
微机原理及接口技术_第4章__8086汇编语言程序设计_第4页
微机原理及接口技术_第4章__8086汇编语言程序设计_第5页
资源描述:

《微机原理及接口技术_第4章__8086汇编语言程序设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、1、编写8086汇编语言程序,将寄存器AX的高8位传送到寄存器BL,低8位传送到寄存器DL。答:CODESEGMENTASSUMECS:CODESTART:MOVBL,AHMOVDL,ALMOVAX,4C00HINT21HCODEENDSENDSTART2、将寄存器DX的内容按从低位到高位的顺序分成4组,并将各组数分别送到寄存器AL,BL,CL和DL中。(例如:(DX)=0ABCDH,分成四组(DL)=0AH,(CL)=0BH,(BL)=0CH,(AL)=0DH)答:CODESEGMENTASSUMEC

2、S:CODESTART:MOVAX,DXANDAL,0FH;处理好最低位组MOVBL,DLMOVCL,4SHRBL,CL;处理好次低位组ANDAH,0FH;暂存次高位组MOVCL,4SHRDH,CL;处理好最高位组MOVCL,AHMOVAH,4CHINT21HCODEENDSENDSTART3、判断MEM单元的数据,编程将奇数存入MEMA单元,将偶数存入MEMB单元。答:DATASEGMENTMEMDW?MEMADW?MEMBDW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:

3、DATASRART:MOVAX,DATAMOVDS,AXMOVAX,MEM;取数SHRAX,1;移出D0位JCPO_1;是奇数,则转移MOVMEMB,AX;存偶数JMPDONEPO_1:RCLAX,1;恢复AX内容DONE:MOVAX,4C00HINT21HCODEENDSENDSTART4、试统计9个数中偶数的个数,并将结果在屏幕上显示。答:DATASEGMENTBUFFDB3BH,47H,8DH,-75,0A4H,69,-2EH,0CCH,200DATAENDSCODESEGMENTASSUMECS

4、:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVSI,OFFSETBUFF;设数据地址指针MOVCX,9;数据长度XORDL,DL;设统计寄存器DL清零A1:TESTBYTEPTR[SI],1;判断奇偶JNZNEXT;奇数不统计INCDL;统计偶数NEXT:INCSI;移动指针LOOPA1;循环判断,直到所有数据处理完ADDDL,30H;将统计结果转换为ASCII码MOVAH,2;调用DOS功能显示结果INT21HMOVAX,4C00HINT21HCODEENDSENDS

5、TART5、试将一串16位无符号数加密,加密方法是每个数乘以2。(不考虑进位)答:(1)DATASEGMENTMEMDW20DUP(?);定义20个随机数DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVCX,LENGTHMEM;数据长度LEABX,MEM;数据地址指针AA1:MOVAX,[BX];取数ADDAX,AX或MULAX,2或SHLAX,1或SALAX,1;×2加密MOV[BX],AX;保存加密后数据ADDBX

6、,2;移动地址指针LOOPAA1;循环执行MOVAX,4C00HINT21HCODEENDSENDSTART以上参考答案没考虑数据×2产生的进位。(2)DATASEGMENTMEMDW20DUP(?);定义20个随机数MEM1DW40DUP(?);考虑加密有进位,结果区留80字节DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVCX,LENGTHMEM;数据长度LEASI,MEM;数据地址指针LEADI,MEM1;结果区

7、指针AA1:MOVAX,[SI];取数MOVBX,2;×2加密MULBX;AX×BXMOV[DI],AX;保存加密后数据低16位MOV[DI+2],DX;保存加密后数据高16位ADDSI,2;移动原数据地址指针ADDDI,4;移动加密数据地址指针LOOPAA1;循环执行MOVAX,4C00HINT21HCODEENDSENDSSTART6、根据寄存器DL的D3位,完成两个压缩BCD数X和Y的加/减运算,D3=0,做加法;D3=1,做减法,并将结果存入寄存器DI。答:DATASEGMENTXDB84HYD

8、B98HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXXORAX,AX;设置进/借位保存寄存器AHMOVAL,X;取第一个BCD数ANDDL,08;判断D3位JNZADD1;D3=1,做加法SUBAL,Y;否则做减法ADCAH,0;保存借位JMPGUADD1:ADDAL,Y;完成加法ADCAH,0;保存进位GU:MOVDI,AXMOVAX,4C00HINT21

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。