《微机原理与接口技术》期末考试题型总结 + 试卷超详解_长安大学微机原理与接口技术期末考试-程序员宅基地

技术标签: 算法  python  微机原理与接口技术  开发语言  

内容还会更新

微机原理只有理解了为什么,才可以真正记住这些代码怎么写,知其然而不知其所以然 是 绝对学不好这门课程的,深有所感!  

题型一: 程序阅读题(15分  5小空,每小空3分

【程序填空  or  程序选择】

1. 从长度为NUM的字符串STR中,统计空格的个数并存入COUNT单元。

DATA SEGMENT 
     STR DB 'WELCOME TO ASSEMBLE WORLD!'
   
 NUM EQU  $-STR    ;($-STR)/2    获取字符串个数
     COUNT DB 0     ;定义统计单元 
DATA ENDS

CODE SEGMENT
    ASSUME CS:CODE, DS:DATA
    START:MOV AX,DATA
                MOV DS,AX    
          
                
LEA BX,STR ;取字符串首地址  load effective address
                MOV CX,NUM
     
;等于空格,COUNT+1    
    L:    MOV AL , [BX]
           
CMP AL,20H   ;空格 20H

           JNE L1
           
INC COUNT    

    ;不等于空格,BX+1

   L1:   INC BX   ;加1
         
 LOOP L    ;  在L中继续寻找
           MOV AH,4CH
           INT 21H

  ENDS
      END START 


 2.程序阅读题(根据程序任务及部分注释,阅读程序,从提供的指令中选择合适的指令(或伪指令),使程序补充完整。)      这5个空都很简单 考到答应我要全对

下列程序实现的任务是:已知W单元存放着16位的带符号数,若W为正数,则令Z=W;

                                        若为0,令Z=400H; 若为负数,则Z=|W|+50H。

DATA  SEGMENT      

     W   DW   0A590H        

     Z   DW   ?  

DATA  ENDS

CODE  SEGMENT     

    ASSUME  CS:CODE, DS:DATA  

   START:   1. MOV  AX , DATA           ; 送分必考               

             MOV  DS, AX     ;设置DS            

             MOV  AX,W                           

                  2. CMP    AX , 0            ;判断正负(比较AX和0) 千万别写W啊!

            JZ   L1     ;相等则转移到L1      

                  3.  JG  L2      ;                  AX > 0 , 跳转L2

                NEG   AX                           AX < 0 :   NEG:求补指令, 负数用补码进行加法运算

                  4.  ADD AX, 50H        ;     Z=|W|+50H

           MOV  Z,AX            

           JMP   NEXT          

   L2  MOV  Z,AX            

             JMP   NEXT    

   L1 MOV  Z,400H     

NEXT: MOV  AH, 4CH             

                 5.   INT 21H          ;      

             CODE    ENDS                  

                        END  START 

指令记不住,看英语就方便记忆,发现一位大佬的微机英语课超全:(176条消息) 汇编指令的英文全称(中英文对照)_汇编jnb英文全称_ywbhnay的博客-程序员宅基地


3.已知程序实现的功能是:从有NUM个数的字数组TABLE中,编写汇编程序,找出其中的最小值,并把结果保存到MIN单元中。
程序如下所示:

 DATA  SEGMENT
       TABLE  DW  65, -200, -380, 930,210,.... 
          6. NUM   EQU   ($ - TABLE)/2              ;定义数组个数
       MIN   DW  ?  ;定义最小值存放单元
 DATA  ENDS
 CODE  SEGMENT
       ASSUME  CS:CODE, DS:DATA
 START:  MOV  AX,DATA
       MOV  DS, AX    ;
        7. MOV  CX,NUM         ;设置循环次数    CX  到底多少?
       
DEC   CX           CX-1                                   DEC:decline 减少1   ||  INC :  increase  增加1
        8.
MOV  SI , OFFSET  TABLE LEA   SI , TABLE        ;取数组TABLE首地址   必考

       MOV   AX,[SI]                    Load effect address  
       MOV   MIN,AX          ;设第一个数为最小值
L:
  9.   INC  SI            ;      SI+1
       MOV  AX,[SI]        ;取下一个数
       CMP  MIN,AX       ;比较两数大小
       10. JLE  NEXT      ;    MIN ≤ AX      【   千万别漏了等于的情况啊!一分没有!  】
       MOV  MIN,AX             MIN > AX
NEXT:  LOOP  L
       MOV  AH,4CH
       INT   21H
 CODE  ENDS
           END  START   

题型二: 分析题    (30分,共5小题,每小题6分)  第二章

考点:判断、分支、循环              长度(DW要除2)(绝对会考)

考题一:

1.寄存器各部分的功能

2.寻址方式/物理地址(会出小题)

注意:基地址为BP(基址指针)则段地址由SS (堆栈段指针)提供 能看出是什么寻址 还要会计算    BX -  DS 

1. 阅读下列程序段,回答相关问题。             

DATA     SEGMENT

 ORG   2000H    ORG:设STRING的首偏移地址

STRING    DB    ‘WELCOME!’2000H-2007H

ARRAY     DW     12,57EH,$+2,762H,$+0AH,45H  2008H-200DH

NUMBER    EQU     ($-ARRAY)/2  EQU:equal等于

DATA    ENDS                    

(1) 变量STRING、ARRAY的偏移地址各是多少?

STRING:EA=2000H  ARRAY:EA=2008H

(2) NUMBER的值是?6

($-ARRAY)/2:从变量ARRAY对应的单元到当前单元间的字节数, M是字变量,每个元素占2个字节。即ARRAY有6个元素

(3)若要执行指令  MOV  AX, ARRAY+4,则指令执行后,AX的值是多少?200EH

字单元格,下一个。


2. 假设DS=3600H,ES=4600H,SS=2000H,SI=4080H,DI=480H,BX=600H,BP=800H,TABLE=2400H。试分析下列各指令中源操作数的寻址方式,计算其物理地址。
(1)MOV
 AX, [BP]      SS 2000H×10H + 800H = 20800H   
寄存器间接寻址 
(2)SUB  AX, TABLE[BX][SI]     带位移的基址变址寻址 ;

                                         DS 36000H + 600H + 4080H + 2400H = 3CA80H
(3)ADD  AX, ES:[DI]  ES 
4600H×10H + 480H = 46480H  寄存器间接寻址  


3. 假设DS=2600H, ES=3600H, SS=6000H, SP=4000H, SI=6050H, DI=450H,

BX=250H ,BP=800H,ARRAY=2400H. 试分析:

(1)若连续执行两条PUSH BX指令后。SP的值为?

(2)指令ADD AX, ARRAY[BP][DI]中, SRC的物理地址为?

(3)指令MOV AX, ES:[BX][SI]中,SRC 的物理地址为?


 

考题二:

1.标志位

2.入栈、出栈

3.设置中断向量

4.交换指令

5. 加减乘除(带进位)

6.NEG求补

7.  -1:0FFH

      -2:0FEH

8.位移指令(P53)(不考双精度)(配合带进位加法)

9. 几种清零:XOR AX,AX(不要不认识)

10. 串操作(统计)


1. 分析下列程序段执行后,AX的值:

            XOR   AX,AX        相当于  ①  MOV  AX, 0 将AX清0    ②   CLC  将CF标志位也清0

            MOV  AX,0A2D5H            Exclusive OR

            MOV  CL,3

            RCL  AX,CL        将AX左移3位   1010  0010  1101  0101

                                                                   0001  0110  1010  1100  16AA H      CF=1

            ADC  AX,1234H   add with carry 带进位加法     16AA+1234+1=28DF  H

                                             注意要加上CF的值。


 【例】已知长度为NUM的字符串STRING,分析下面程序段功能。

            MOV   CX,NUM

                      LEA    BX,STRING

                      XOR   DL,DL

             L:     MOV    AL,  [BX]

                      CMP    AL,  'A'

                      JB       NEXT

                      CMP    AL, 'Z'

                       JA      NEXT

                       INC    DL        DL+1   

          NEXT:  INC    BX        

                      LOOP   L            

程序段完成的功能是:   DL←统计STRING中大写字母个数                               


题型三:程序编写题 【统计个数、成绩、大写换小写】

 【例】求一字符串长度,要求滤去第一个非空格字符之前的所有空格,字符串以“#”结束。

DATA 	SEGMENT
     STRING	DB '     abcd_234ddr#'				
    SL   DB   ?
DATA	ENDS

CODE	SEGMENT
      ASSUME   CS:CODE,DS:DATA  
      
START:	MOV  AX,DATA
		MOV  DS,AX
		LEA   SI,STRING  ;字符串首地址送SI
		MOV  BL,00H     ;BL清零

LOPA:	MOV  AL,[SI]
			INC  SI
			CMP  AL,20H      ;比较是否为空格符
			JE 	LOPA

LOPB:	CMP  AL,'#'
			JE	NEXT
			INC  BL
			MOV AL,[SI],
			INC  SI
			JMP	LOPB

NEXT:	MOV  SL, BL          ;结果送SL单元
			MOV  AH, 4CH         
			INT  21H         ;退出

CODE	ENDS
			END START








 

题型四:芯片

 8259:中断向量设置(4种方法)、怎样都IRR/ISR(统计中断个数)IMR(小题)

【例】设8259A端口地址为:20H,21H。单片使用,编写程序片段,试判断当前有多少个中断请求等待服务?把结果保存在BL中。

【分析】需要设置OCW3,即令OCW3=0000,1010B=0AH

 程序段为:

          MOV  AL, 0AH ; 设置OCW3,其中D1D0=10

                 OUT  20H, AL  ;从低端口输出

                 NOP                   

                 IN  AL, 20H       ;读入IRR的内容

                 XOR  BL,  BL            ; BL清零

                 MOV  CX, 8               ;设置循环次数

         L:    SHL   AL,  1               ;左移1位,

                 JNC  NEXT                ;CF=0,转入NEXT

                 INC  BL                      ;CF为1,则表示当前位有请求

   NEXT:    LOOP   L

8255:初始化,应用

8253:控制字,定时,初始化,方波v应用

 

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_54570972/article/details/129590085

智能推荐

WCE Windows hash抓取工具 教程_wce.exe -s aaa:win-9r7tfgsiqkf:0000000000000000000-程序员宅基地

文章浏览阅读6.9k次。WCE 下载地址:链接:https://share.weiyun.com/5MqXW47 密码:bdpqku工具界面_wce.exe -s aaa:win-9r7tfgsiqkf:00000000000000000000000000000000:a658974b892e

各种“网络地球仪”-程序员宅基地

文章浏览阅读4.5k次。Weather Globe(Mackiev)Google Earth(Google)Virtual Earth(Microsoft)World Wind(NASA)Skyline Globe(Skylinesoft)ArcGISExplorer(ESRI)国内LTEarth(灵图)、GeoGlobe(吉奥)、EV-Globe(国遥新天地) 软件名称: 3D Weather Globe(http:/_网络地球仪

程序员的办公桌上,都出现过哪些神奇的玩意儿 ~_程序员展示刀,产品经理展示枪-程序员宅基地

文章浏览阅读1.9w次,点赞113次,收藏57次。我要买这些东西,然后震惊整个办公室_程序员展示刀,产品经理展示枪

霍尔信号、编码器信号与电机转向-程序员宅基地

文章浏览阅读1.6w次,点赞7次,收藏63次。霍尔信号、编码器信号与电机转向从电机出轴方向看去,电机轴逆时针转动,霍尔信号的序列为编码器信号的序列为将霍尔信号按照H3 H2 H1的顺序组成三位二进制数,则霍尔信号翻译成状态为以120°放置霍尔为例如不给电机加电,使用示波器测量三个霍尔信号和电机三相反电动势,按照上面所说的方向用手转动电机得到下图① H1的上升沿对应电机q轴与H1位置电角度夹角为0°,..._霍尔信号

个人微信淘宝客返利机器人搭建教程_怎么自己制作返利机器人-程序员宅基地

文章浏览阅读7.1k次,点赞5次,收藏36次。个人微信淘宝客返利机器人搭建一篇教程全搞定天猫淘宝有优惠券和返利,仅天猫淘宝每年返利几十亿,你知道么?技巧分享:在天猫淘宝京东拼多多上挑选好产品后,按住标题文字后“复制链接”,把复制的淘口令或链接发给机器人,复制机器人返回优惠券口令或链接,再打开天猫或淘宝就能领取优惠券啦下面教你如何搭建一个类似阿可查券返利机器人搭建查券返利机器人前提条件1、注册微信公众号(订阅号、服务号皆可)2、开通阿里妈妈、京东联盟、拼多多联盟一、注册微信公众号https://mp.weixin.qq.com/cgi-b_怎么自己制作返利机器人

【团队技术知识分享 一】技术分享规范指南-程序员宅基地

文章浏览阅读2.1k次,点赞2次,收藏5次。技术分享时应秉持的基本原则:应有团队和个人、奉献者(统筹人)的概念,同时匹配团队激励、个人激励和最佳奉献者激励;团队应该打开工作内容边界,成员应该来自各内容方向;评分标准不应该过于模糊,否则没有意义,应由客观的基础分值以及分团队的主观综合结论得出。应有心愿单激励机制,促进大家共同聚焦到感兴趣的事情上;选题应有规范和框架,具体到某个小类,这样收获才有目标性,发布分享主题时大家才能快速判断是否是自己感兴趣的;流程和分享的模版应该有固定范式,避免随意的格式导致随意的内容,评分也应该部分参考于此;参会原则,应有_技术分享

随便推点

O2OA开源企业办公开发平台:使用Vue-CLI开发O2应用_vue2 oa-程序员宅基地

文章浏览阅读1k次。在模板中,我们使用了标签,将由o2-view组件负责渲染,给o2-view传入了两个参数:app="内容管理数据"和name="所有信息",我们将在o2-view组件中使用这两个参数,用于展现“内容管理数据”这个数据应用下的“所有信息”视图。在o2-view组件中,我们主要做的事是,在vue组件挂载后,将o2的视图组件,再挂载到o2-view组件的根Dom对象。当然,这里我们要在我们的O2服务器上创建好数据应用和视图,对应本例中,就是“内容管理数据”应用下的“所有信息”视图。..._vue2 oa

[Lua]table使用随笔-程序员宅基地

文章浏览阅读222次。table是lua中非常重要的一种类型,有必要对其多了解一些。

JAVA反射机制原理及应用和类加载详解-程序员宅基地

文章浏览阅读549次,点赞30次,收藏9次。我们前面学习都有一个概念,被private封装的资源只能类内部访问,外部是不行的,但这个规定被反射赤裸裸的打破了。反射就像一面镜子,它可以清楚看到类的完整结构信息,可以在运行时动态获取类的信息,创建对象以及调用对象的属性和方法。

Linux-LVM与磁盘配额-程序员宅基地

文章浏览阅读1.1k次,点赞35次,收藏12次。Logical Volume Manager,逻辑卷管理能够在保持现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的灵活性/boot分区用于存放引导文件,不能基于LVM创建PV(物理卷):基于硬盘或分区设备创建而来,生成N多个PE,PE默认大小4M物理卷是LVM机制的基本存储设备,通常对应为一个普通分区或整个硬盘。创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录 LVM 的属性,并把存储空间分割成默认大小为 4MB 的基本单元(PE),从而构成物理卷。

车充产品UL2089安规测试项目介绍-程序员宅基地

文章浏览阅读379次,点赞7次,收藏10次。4、Dielecteic voltage-withstand test 介电耐压试验。1、Maximum output voltage test 输出电压试验。6、Resistance to crushing test 抗压碎试验。8、Push-back relief test 阻力缓解试验。7、Strain relief test 应变消除试验。2、Power input test 功率输入试验。3、Temperature test 高低温试验。5、Abnormal test 故障试验。

IMX6ULL系统移植篇-系统烧写原理说明_正点原子 imx6ull nand 烧录-程序员宅基地

文章浏览阅读535次。镜像烧写说明_正点原子 imx6ull nand 烧录