微机原理及应用编程题试题集.docx

上传人:b****1 文档编号:10887737 上传时间:2023-05-28 格式:DOCX 页数:24 大小:50.50KB
下载 相关 举报
微机原理及应用编程题试题集.docx_第1页
第1页 / 共24页
微机原理及应用编程题试题集.docx_第2页
第2页 / 共24页
微机原理及应用编程题试题集.docx_第3页
第3页 / 共24页
微机原理及应用编程题试题集.docx_第4页
第4页 / 共24页
微机原理及应用编程题试题集.docx_第5页
第5页 / 共24页
微机原理及应用编程题试题集.docx_第6页
第6页 / 共24页
微机原理及应用编程题试题集.docx_第7页
第7页 / 共24页
微机原理及应用编程题试题集.docx_第8页
第8页 / 共24页
微机原理及应用编程题试题集.docx_第9页
第9页 / 共24页
微机原理及应用编程题试题集.docx_第10页
第10页 / 共24页
微机原理及应用编程题试题集.docx_第11页
第11页 / 共24页
微机原理及应用编程题试题集.docx_第12页
第12页 / 共24页
微机原理及应用编程题试题集.docx_第13页
第13页 / 共24页
微机原理及应用编程题试题集.docx_第14页
第14页 / 共24页
微机原理及应用编程题试题集.docx_第15页
第15页 / 共24页
微机原理及应用编程题试题集.docx_第16页
第16页 / 共24页
微机原理及应用编程题试题集.docx_第17页
第17页 / 共24页
微机原理及应用编程题试题集.docx_第18页
第18页 / 共24页
微机原理及应用编程题试题集.docx_第19页
第19页 / 共24页
微机原理及应用编程题试题集.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

微机原理及应用编程题试题集.docx

《微机原理及应用编程题试题集.docx》由会员分享,可在线阅读,更多相关《微机原理及应用编程题试题集.docx(24页珍藏版)》请在冰点文库上搜索。

微机原理及应用编程题试题集.docx

微机原理及应用编程题试题集

(微机原理及应用)编程题-试题集

重庆科技学院试题库系统试题库导出试题

微机原理及应用-编程题(43题)

题序:

0017题型:

06难度:

01分值:

10.0章号:

03节号:

02

知识点:

;8086/8088指令系统

题干:

变量DATAX和DATAY定义如下:

   DATAX  DW 0148H

           DW 2316H

    DATAY DW 0237H

           DW 4052H

试编写一个程序段,实现将DATAX和DATAY两个字数据相乘(用MUL)。

答案:

 解:

  

(1)  MOV     AX,DATAX

MUL      DATAY

MOV     DATAY,AX

MOV     DATAY+2,DX

题序:

0018题型:

06难度:

02分值:

10.0章号:

03节号:

02

知识点:

;8086/8088指令系统

题干:

变量DATAX和DATAY定义如下:

   DATAX  DW 0148H

           DW 2316H

    DATAY DW 0237H

           DW 4052H

试编写一个程序段,实现将DATAX除以23(用DIV)。

答案:

 解:

  

(1)  MOV     AX,DATAX

      MOV     BL,23

DIV       BL

MOV     BL,AH

MOV     AH,0

MOV     DATAY,AX           ;存放商

MOV     AL,BL

MOV     DATAY+2,DX      ;存放余数

题序:

0002题型:

06难度:

03分值:

10.0章号:

03节号:

02

知识点:

;8086/8088指令系统

题干:

试编写一个程序段,实现将BX中的数除以10,结果仍放在BX中。

 

答案:

 解:

       MOVCL,0AH

                MOVAX,BX

                DIV CL

                MOVBX,AX

题序:

0016题型:

06难度:

03分值:

10.0章号:

03节号:

02

知识点:

;8086/8088指令系统

题干:

变量DATAX和DATAY定义如下:

   DATAX  DW 0148H

                   DW 2316H

    DATAY DW 0237H

                   DW 4052H

试编写一个程序段,实现将DATAX和DATAY

MOV     DL,AL

MOV     AL,N1

SBBAL,N2

AAS

MOV     DH,AL

 

题序:

0006题型:

06难度:

02分值:

10.0章号:

04节号:

02

知识点:

;汇编语言及程序设计

题干:

编写程序实现对两个存储区中的字进行比较。

如找到一对不同的字,则退出,此时,ZF为0,DI指向此字;如两个存储区中所有的字都相同,则退出程序时,CX中值为0,ZF为1。

答案:

 解:

  MATT:

  MOV    SI,OFFSETSOURCE    ;源区首址

       MOV    DI,OFFSETTARGET    ;目的区首址

       MOV    CX,NUMBER

       JCXZ   EXIT                 ;如CX为0,则结束

       PUSH   CX                   ;保存有关寄存器

       PUSH   SI 

       PUSH   DI 

       CLD                          ;清方向标志

       REPE   CMPSW

       JZ     MATCH                ;比较

       PUSHF                        ;ZF为1,则转移

       SUB    DI,2                ;ZF为0,则DI指向次字

       POPF

       JMP    EXIT                 ;推出

MATCH:

 POP    DI                   ;恢复寄存器

       POP    SI

       POP    CX

EXIT:

  RET

题序:

0015题型:

06难度:

02分值:

10.0章号:

04节号:

02

知识点:

;汇编语言及程序设计

题干:

根据下列要求编写一个汇编语言程序:

(1)代码段的段名为COD_SG

(2)数据段的段名为DAT_SG

(3)堆栈段的段名为STK_SG

(4)变量HIGH_DAT所包含的数据为95

(5)将变量HIGH_DAT装入寄存器AH,BH和DL

(6)程序运行的入口地址为START

答案:

 解:

  DAT_SG      SEGEMNT

      HIGH_DAT    DB  95

DAT_SG      ENDS

;

STK_SG      SEGMENT

       DW      64DUP(?

STK_SG      ENDS

;

COD_SG     SEGMENT

MAIN           PROC    FAR

ASSUMECS:

COD_SG,DS:

DAT_SG,SS:

STK_SG

START:

  MOV     AX,DAT-SG

             MOV     DS,AX

             MOV     AH,HIGH_DAT

             MOV     BH,AH

MOV     DL,AH

MOV     AH,4CH

INT       21H

MAIN    ENDP

COD_SGENDS

                 END   START

题序:

0026题型:

06难度:

02分值:

10.0章号:

04节号:

02

知识点:

;汇编语言及程序设计

题干:

已知整数变量A和B,试编写完成下述操作的程序:

(1)若两个数中有一个是奇数,则将该奇数存入A中,偶数存入B中;

(2)若两个数均为奇数,则两数分别加1,并存回原变量;

(3)若两个数均为偶数,则两变量不变。

答案:

 解:

  dsegsegment

      a     dw  ?

      b    dw  ?

dsegends

cseg       segment

main      proc far

assume   cs:

cseg,ds:

dseg

start:

      push      ds

             sub        ax,ax

             push      ax

             mov       ax,dseg

             mov       ds,ax

begin:

     mov       ax,a

             mov       bx,b

             xor        ax,bx

             test        ax,0001

             jz           class

             test        bx,0001

             jz           exit

             xchg      bx,a

             mov       b,bx

             jmp        exit

class:

     test        bx,0001

             jz           exit

             inc         b

             inc         a

exit:

ret

main      endp

cseg       ends

             end        start

题序:

0001题型:

06难度:

03分值:

10.0章号:

04节号:

02

知识点:

;汇编语言及程序设计

题干:

在DS段中有一个从TABLE开始的由160个字符组成的链表,设计一个程序,实现对此表进行搜索,找到第一个非0元素后,将此单元和下一单元清0。

答案:

 解:

      MOV  CX,SEGTABLE

         MOV  DS,CX          ;将段地址送DS

         MOV  SI,OFFSETTABLE;表偏移量送SI

         MOV  CX,160         ;字节数

         XOR  AL,AL

  NEXT:

 CMP  AL,[SI]

         JNE  EXIT1

         INC  SI

         LOOP NEXT

  EXIT1:

MOV  [SI],AL

         INC  SI

         MOV  [SI],AL

题序:

0004题型:

06难度:

03分值:

10.0章号:

04节号:

02

知识点:

;汇编语言及程序设计

题干:

用循环控制指令设计程序段,从60H个元素中寻找一个最大值,结果放在AL中。

答案:

 解:

         MOV SI,OFFSETDATA1;将数据起始地址送SI

        MOV CX,5FH         ;有60H-1次循环

        MOV AL,[SI]        ;将第一个元素放AL中

COMPARE:

INC SI

        CMP AL,[SI]

        JL  XCHMAX

        JMP NEXT 

XCHMAX:

 MOV AL,[SI]

NEXT:

   LOOPCOMPARE

题序:

0007题型:

06难度:

03分值:

10.0章号:

04节号:

02

知识点:

;汇编语言及程序设计

题干:

编写程序实现在TABLE为起始地址的100个字符长度的表中检索“$"字符。

答案:

 解:

  START:

 MOV    CX,SEGTABLE       ;表段地址送ES

       MOV    ES,CX 

       MOV    DI,OFFSETTABLE    ;表偏移量送DI

       MOV    AL,'$'             ;检索的关键字

       MOV    CX,64H             ;检索的字节数

       PUSH   DI                     ;保存起始地址

       CLD                                 清除方向标志

       REPNE  SCASB               ;检索

       JNZ    NFOUN               ;如未找到,则转移

       SUB    DI,1                    找到,则指向字符

       JMP    EXIT

NFOUN:

 POP    DI                  ;恢复起始地址

EXIT:

  RET            

题序:

0009题型:

06难度:

03分值:

10.0章号:

04节号:

02

知识点:

;汇编语言及程序设计

题干:

编写程序实现两个16位非组合BCD码的数相加。

答案:

 解:

  ANBCD:

 MOV CH,AH;进入程序段时,AX中为第二个操作数

       ADD AL,BL;BX中为被加数,实现低8位相乘

       AAA 

       XCHGAL,CH

       ADC AL,BH;实现高8位相加

       AAA 

       MOV AH,AL;和保存在AX中

       MOV AL,CH

       RET

题序:

0010题型:

06难度:

03分值:

10.0章号:

04节号:

02

知识点:

;汇编语言及程序设计

题干:

编写程序段设计一个实现16位非组合BCD码减法的程序。

答案:

 解:

  SUBCD:

 MOV CH,AH ;AX-BX->AX,为非组合BCD码

                 SUB AL,BL

                 AAS

                 XCHGAL,CH

                 SBB AL,BH

                 AAS

                 MOV AH,AL

                 MOV AL,CH

                 RET

题序:

0011题型:

06难度:

03分值:

10.0章号:

04节号:

02

知识点:

;汇编语言及程序设计

题干:

编写程序实现两个16位组合BCD码相减,进入程序时,BX中为减数,AX中为被减数,程序执行后,结果在AX中。

答案:

 解:

  STASUB:

MOV CH,AH;保存高8位

       SUB AL,BL;低8位相减

       DAS        ;十进制调整

       XCHGAL,CH

       SBB AL,BH;高8位相减

       DAS 

       MOV AH,AL;结果在AX中 

       MOV AL,CH

       RET

题序:

0012题型:

06难度:

03分值:

10.0章号:

04节号:

02

知识点:

;汇编语言及程序设计

题干:

编写程序实现两个16位组合BCD码相加。

进入程序时,BX中为加数,AX中为被加数,程序执行后,结果在AX中。

答案:

 解:

  STAADD:

MOV CH,AH ;AX+BX->AX,为组合BCD码

               ADD AL,BL

               DAA

               XCHGAL,CH

               ADC AL,BH

               DAA

               MOV AH,AL

               MOV AL,CH

               RET 

题序:

0013题型:

06难度:

03分值:

10.0章号:

04节号:

02

知识点:

;汇编语言及程序设计

题干:

编写程序将一个8位二进转换为2位BCD数字,进入程序时,AL中为二进制数,退出程序时,如CF为0,则AL中为BCD数字,如CF为1,则表示由于输入值超出范围故结果无效。

答案:

 解:

  START:

 CMP AL,99;是否超出范围?

           JBE STRAT

           STC        ;是,则转EXIT,并给CF置1

           JC  EXIT

STRAT:

 MOV CL,10;10作为除数

       XOR AH,AH

       CBW        ;将AL中数扩展到AH

       DIV CL    ;除法结果AL中为高位,AH中为低位

       MOV CL,4

       SHL AL,CL;左移4位

       OR  AL,AH;合成BCD码在AL中

EXIT:

  RET  

题序:

0014题型:

06难度:

03分值:

10.0章号:

04节号:

02

知识点:

;汇编语言及程序设计

题干:

编写程序用XLAT指令将小于16的二进制数转换成ASCII表示的16进制数。

答案:

 解:

  START:

 JMP BINASC

ASCII  DB  '0123456789ABCDEF'

BINASC:

PUSHBX

       AND AL,0FH ;清除AL中高4位

       LEA BX,ASCII;BX指向ASCII表

       XLAT         ;转换为ASCII码

       POP BX

       RET

 

题序:

0030题型:

06难度:

03分值:

10.0章号:

04节号:

02

知识点:

;汇编语言及程序设计

题干:

编写完整的8086汇编程序:

将字符缓冲区A的字符'1234567890'倒序存放到缓冲区B中。

答案:

 解:

  DSEG   SEGMENT

A     DB   '1234567890'

DSEG   ENDS

ESEG   SEGMENT                     

B     DB   10  DUP(?

ESEG   ENDS

CSEG   SEGMENT                     

ASSUME CS:

CSEG,DS:

DSEG,ES:

ESEG

START:

  MOV  AX,DSEG

       MOV  DS,AX

       MOV  AX,ESEG

       MOV  ES,AX

       LEA  SI,A

       LEA  DI,B

      ADD  DI,9

       MOV CX,10                

MOVE:

   CLD

       LODSB

       STD

       STOSB

       LOOP  MOVE

 MOV    AH,4CH                            

       INT   21H

CSEG    ENDS

END    START 

题序:

0031题型:

06难度:

03分值:

10.0章号:

04节号:

02

知识点:

;汇编语言及程序设计

题干:

编写完整的8086汇编程序:

查表求X(0-9)的立方并将结果存放到变量XXX中去。

答案:

 解:

  DATA  SEGMENT

TAB   DW 0,1,8,27,64,125,216,343,512,729

X     DB 8

XXX   DW ?

DATA  ENDS                         

CODE  SEGMENT

ASSUMECS:

CODE,DS:

DATA              

START:

MOV AX,DATA       

      MOV DS,AX             ;为DS送初值    

      MOV AL,X

      ADD AL,AL

      MOV BL,AL             ;求立方表的偏移

      MOV BH,0

      MOV AX,TAB[BX]       ;查表  

      MOV XXX,AX            ;保存

      MOV AH,4CH            ;返回DOS

      INT 21H

CODE  ENDS

ENDSTART

题序:

0033题型:

06难度:

03分值:

10.0章号:

04节号:

02

知识点:

;汇编语言及程序设计

题干:

编写程序,计算下面函数的值。

答案:

 解:

  DATA SEGMENT

     X DW 34

     S DW  ?

DATA ENDS

CODE SEGMENT

     ASSUME CS:

CODE,DS:

DATA

START:

MOV AX,DATA

      MOV DS,AX

      MOV AX,X                               ;将X送到AX中

      CMP AX,0                               ;(AX)>0吗?

      JL  DOUB                                ;是,转向doub

      CMP AX,10                              ;否,(ax)<10吗?

      JLE TRIB                                 ;是,转向trib

      SAL AX,1                                ;否,乘以4

      SAL AX,1

      JMP EXIT

DOUB:

SAL AX,1                               ;乘以2

      JMP EXIT

TRIB:

SAL AX,1                                 ;乘以3

      ADD AX,X

EXIT:

MOV S,AX                                ;保存结果

      MOV AH,4CH                            ;结束

      INT 21H

CODE ENDS

      END START

 

题序:

0035题型:

06难度:

03分值:

10.0章号:

04节号:

02

知识点:

;汇编语言及程序设计

题干:

已知在内存中从BLOCK单元起存放有20个带符号字节数据(-7,1,12,-90,-70,34,-1,56,45,-12),统计其中负数的个数并放入COUNT单元。

答案:

 解:

  DATA SEGMENT

 

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

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

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

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