李伯成《微型计算机原理与接口技术》课后习题答案.docx

上传人:b****5 文档编号:12363591 上传时间:2023-04-18 格式:DOCX 页数:14 大小:20.84KB
下载 相关 举报
李伯成《微型计算机原理与接口技术》课后习题答案.docx_第1页
第1页 / 共14页
李伯成《微型计算机原理与接口技术》课后习题答案.docx_第2页
第2页 / 共14页
李伯成《微型计算机原理与接口技术》课后习题答案.docx_第3页
第3页 / 共14页
李伯成《微型计算机原理与接口技术》课后习题答案.docx_第4页
第4页 / 共14页
李伯成《微型计算机原理与接口技术》课后习题答案.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

李伯成《微型计算机原理与接口技术》课后习题答案.docx

《李伯成《微型计算机原理与接口技术》课后习题答案.docx》由会员分享,可在线阅读,更多相关《李伯成《微型计算机原理与接口技术》课后习题答案.docx(14页珍藏版)》请在冰豆网上搜索。

李伯成《微型计算机原理与接口技术》课后习题答案.docx

李伯成《微型计算机原理与接口技术》课后习题答案

李伯成《微机原理》习题  第三章

本章作业参考书目:

1.周明德:

  微型计算机IBM-PC系统原理与应用  清华大学出版社  1991

2.王永山等:

微型计算机原理与应用          西安电子科大出版社1998

3.张怀莲:

  IBMPC汇编语言程序设计        电子工业出版社    1990

注:

本习题解中的程序仅为代码片段,可在Emu8086version2.57环境下仿真运行,如果在MASM下进行汇编,需添加段设置以及相应的伪指令。

3.1      

MOV      AX,00H;                      立即寻址

SUB      AX,AX;                      寄存器寻址

MOV      AX,[BX];                      寄存器间接寻址

MOV      AX,TABLE;                直接寻址

MOV      AL,ARAY1[SI];          寄存器相对寻址

      MOV          AX,[BX+6];          寄存器相对寻址

3.2      若1KB的数据存放在TABLE以下,试编写程序将该数据拌到NEXT之下。

  

    程序片段如下:

ORG100h

                MOV      CX,03FFH;数据个数

                LEA      SI,TABLE;源区首地址

                LEA      DI,NEXT;目的区首地址

AGAIN:

      MOV      AL,[SI];      

                MOV      [DI],AL;  搬移

                INC      SI

                INC      DI;            移动地址指针

                DEC      CX;                循环计数器递减

                JNZ        AGAIN;      循环未结束转      

                HLT;                      暂停

      TABLEDB1024dup('A');源数据区

      NEXT      DB1024dup(0);      目的数据区

3.3      编写10个字(16位二进制数)之和的程序

ORG100h

                LEA      SI,ADD1;

                LEA      DI,ADD2;

                LEA      BX,SUM;

                MOV      CL,CONT;          

                MOV      CH,0;  循环初始化

                CLC;                进位清零      

MADD1:

      MOV      AX,[SI];          读加数1

                ADC      AX,[DI]

                ADD      SI,2;                移动源区地址指针

                ADD      DI,2;                移动目的区地址指针

                MOV      [BX],AX;      回存计算结果

                ADD      BX,2;          移动“和”存储区地址指针

                LOOP      MADD1;      循环控制

                HLT;                      暂停

ADD1      DB      0FEH,86H,7CH,44h,56H,1FH,24H,01H,02H,33H;加数1

ADD2      DB      56H,49H,4EH,0FH,9CH,22H,45H,11H,45H,21H;加数2

SUM      DB      10  DUP(0);  和存储单元

CONT      DB      5;  循环次数

3.4某16位二进制数,放在DATA连续的两个单元中,试编程求其平方根和余数,将其分别存放在ANS和REMAIN中。

                      ORG100h          

                      MOV      BL,2;            除数初值

      AGAIN:

      MOV      CX,NUM;          预计最大循环次数

                      MOV      AL,BL;          0、1的平方根除外

                      MUL      BL;            得到2的平方

                      CMP      AX,CX;          大于原始数据么?

                      JG      EXIT;          若原始数据小于4转EXIT

                      MOV      AX,CX;          读数

                      DIV      BL;          试除

                      INC      BL;          除数递增

                      JMP      AGAIN;          继续除

      EXIT:

          DEC      BL;          去除除数自加

                      MOV      ANS,BL;          存商

                      MOV      AL,BL;          恢复余数

                      MUL      BL;            

                      SUB      CX,AX;

                      MOV      REMAIN,CL;

                      HLT

          

      NUM      DW      7;

      ANS      DB      ?

;

      REMAIN      DB      ?

;

      

3.5在DATA1之下顺序存放着以ASCII码表示的千位数,将其转换成二进制数。

MOV      CL,4;          移位次数

                      MOV      CH,CL;      循环次数

                      MOV      SI,OFFSETASCBIN

                      CLD

                      XOR      AX,AX

                      XOR      DX,DX

ASCB1:

      LODSB  

                      AND      AL,7FH

                      CMP      AL,'0'          ;不大于‘0’结束转换

                      JL      ERR

                      CMP      AL,'9'

                      JG          ASCB2          ;大于‘9’转ASCB2

                      SUB      AL,30H          ;数字形式二进制数减30H

                      JMP      ASCB3

ASCB2:

      CMP      AL,'A'          ;大于‘9’又小于‘A’结束转换

                      JL      ERR

                      CMP      AL,'F'

                      JG          ERR          ;大于‘F’为不合理数,结束转换

                      SUB          AL,37H          ;字符形式ASCII数减37H

ASCB3:

      OR          DL,AL

                      ROL          DX,CL

                      DEC          CH

                      JNZ          ASCB1

                      ROL          DX,CL

                      MOV      BIN,DX;存储转换结果

ERR:

          NOP

                      HLT

      

ASCBIN      DB'1','B,'4','3'

BIN      DW      ?

3.7编写程序将MOLT中的一个8位数乘以20,乘积放在ANS中(用3种方式)。

解:

第一种方法:

常规乘法运算

          ORG100h

          MOV      AL,MOLT

          MOV      BL,20

          MUL      BL

          MOV      ANS,AX

          HLT

          

          MOLT      DB      2

          ANS      DW      ?

第二种方法,将MOLT连加20次

ORG100h

                MOV      CX,20

                MOV      BX,MOLT

                XOR      AX,AX

                CLC

      ADD1:

ADC      AX,BX

                LOOP      ADD1

                MOV      ANS,AX

                HLT

          

          MOLT  DW      5

          ANS      DW      ?

第三种方法,将“20”连加MOLT次

ORG100h

                MOV      CX,MOLT

                MOV      BX,20

                XOR      AX,AX

                CLC

      ADD1:

ADC      AX,BX

                LOOP      ADD1

                MOV      ANS,AX

                HLT

          

          MOLT  DW      5

          ANS      DW      ?

3.8          在DATA之下存放100个无符号的8位数,找出其最大者并将其存放在KVFF单元。

ORG100h

                XOR      DL,DL

                LEA          DI,KVFF;          

NEXT0:

      LEA          SI,BUFFER;

                MOV      CL,99;                比较次数为N-1次                

NEXT1:

      MOV      AL,[SI];          

                INC          SI;                

                CMP      DL,AL;                

                JNC      NEXT2;                

                MOV      DL,AL;                DL中始终存目前最大值

NEXT2:

      DEC      CL;                

                JNZ      NEXT1;                

          MOV      [DI],DL;          最大值存储

                HLT

          

          

      BUFFERDB  ;自行定义100个数据

      KVFF  DB            ?

3.9  若将数据按大小顺序排序,试编写程序..

解:

此处采用“冒泡法”予以处理:

                      ORG100h

                

                      LEA      DI,BUFFER;          数据区

                      MOV      BL,99;              外循环次数

      NEXT0:

          MOV      SI,DI;

                      MOV      CL,BL;          内循环次数

      NEXT3:

          MOV      AL,[SI];      读数

                      INC      SI;                  移动指针

                      CMP      AL,[SI];          比较

                      JNC      NEXT5;      大于转NEXT5

                      MOV      DL,[SI];

                      MOV      [SI-1],DL;

                      MOV      [SI],AL;          不大于互换

      NEXT5:

          DEC      CL;          内循环次数减一

                      JNZ          NEXT3;                

                      DEC          BL;      外循环次数减一

                      JNZ          NEXT0

                      HLT

          

          

      BUFFERDB自行定义100个字节型数据

3.10在BVFF单元中有一个BCD数A,试根据下列关系编写程序,计算结果存在DES中.

A<20,Y=3*A;  A<60,Y=A-20;  A>=60,Y=80.

                ORG100h

                MOV      AL,BVFF

                CMP      AL,20

                JL      EX1

                CMP      AL,60

                JL      EX2

                MOV      AL,80

                JMP      STOP

      EX1:

          MOV      BL,3

                MUL      BL

                JMP      STOP

      EX2:

          SUB      AL,20

      STOP:

      MOV      DES,AL

                HLT

          

                

          BVFF      DB  8

          DES      DB  ?

          

3.11址为DATAB开始的80个单元中,存放某班80个学生的某课程成绩,要求:

统计>=90分、80~89分、70~79分、60~69分、60分以下的人数,结果存放在BTRX开始的5个单元中

求平均成绩,结果存放在LEVEL中。

解:

寄存器使用分配:

90分以上在DH,80分以上在DL,70分以上在BH,60分以上在BL,60分以下在AH,总分、均分都在[DI]。

          ORG100h

          XOR      AH,AH                      

          XOR      DX,DX          ;统计结

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

当前位置:首页 > 自然科学 > 物理

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

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