技术标签: 算法 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应用
文章浏览阅读1.3k次,点赞40次,收藏19次。虽然你不能直接计算每个房间的人数,但通过马尔科夫链的蒙特卡洛方法,你可以从任意状态(房间)开始采样,并最终收敛到目标分布(人数分布)。然后,根据一个规则(假设转移概率是基于房间的人数,人数较多的房间具有较高的转移概率),你随机选择一个相邻的房间作为下一个状态。比如在巨大城堡,里面有很多房间,找到每个房间里的人数分布情况(每个房间被访问的次数),但是你不能一次进入所有的房间并计数。但是,当你重复这个过程很多次时,你会发现你更有可能停留在人数更多的房间,而在人数较少的房间停留的次数较少。_马尔科夫链期望怎么求
文章浏览阅读3.9k次。一、su命令su命令用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码。命令su的格式为:su [-] username1、后面可以跟 ‘-‘ 也可以不跟,普通用户su不加username时就是切换到root用户,当然root用户同样可以su到普通用户。 ‘-‘ 这个字符的作用是,加上后会初始化当前用户的各种环境变量。下面看下加‘-’和不加‘-’的区别:root用户切换到普通..._限制su root登陆
文章浏览阅读1.2k次。精通VC与Matlab联合编程(六)作者:邓科下载源代码浅析VC与MATLAB联合编程浅析VC与MATLAB联合编程浅析VC与MATLAB联合编程浅析VC与MATLAB联合编程浅析VC与MATLAB联合编程 Matlab C/C++函数库是Matlab扩展功能重要的组成部分,包含了大量的用C/C++语言重新编写的Matlab函数,主要包括初等数学函数、线形代数函数、矩阵操作函数、数值计算函数_精通vc和matlab联合编程 六
文章浏览阅读128次。在MVC2中默认并没有实现DescriptionAttribute(虽然可以找到这个属性,通过阅读MVC源码,发现并没有实现方法),这很不方便,特别是我们使用EditorForModel的时候,我们需要对字段进行简要的介绍,下面来扩展这个属性。新建类 DescriptionMetadataProvider然后重写DataAnnotationsModelMetadataPro..._asp.net mvc 模型description
文章浏览阅读1.3k次。一.概述 本篇继续探讨web应用架构,讲基于DDD风格下最初的领域模型架构,不同于DDD风格下CQRS架构,二者架构主要区别是领域层的变化。 架构的演变是从领域模型到C..._eshoponweb
文章浏览阅读2.6w次,点赞23次,收藏85次。首先说明,本人之前没用过zookeeper、kafka等,尚硅谷十几个小时的教程实在没有耐心看,现在我也不知道分区、副本之类的概念。用kafka只是听说他比RabbitMQ快,我也是昨天晚上刚使用,下文中若有讲错的地方或者我的理解与它的本质有偏差的地方请包涵。此文背景的环境是windows,linux流程也差不多。 官网下载kafka,选择Binary downloads Apache Kafka 解压在D盘下或者什么地方,注意不要放在桌面等绝对路径太长的地方 打开conf_springboot kafka
文章浏览阅读1k次。编好水晶报表代码,用的是ActiveX模式,在本机运行,第一次运行提示安装ActiveX控件,安装后,一切正常,能正常打印,但发布到网站那边运行,可能是一闪而过,连提示安装ActiveX控件也没有,甚至相关的功能图标都不能正常显示,再点"打印图标"也是没反应解决方法是: 1.先下载"PrintControl.cab" http://support.businessobjects.c_水晶报表 不能打印
文章浏览阅读1.3k次。绝大部分UC/OS-II的源码是用移植性很强的ANSI C写的。也就是说某产品可以只使用很少几个UC/OS-II调用,而另一个产品则使用了几乎所有UC/OS-II的功能,这样可以减少产品中的UC/OS-II所需的存储器空间(RAM和ROM)。UC/OS-II是为嵌入式应用而设计的,这就意味着,只要用户有固化手段(C编译、连接、下载和固化), UC/OS-II可以嵌入到用户的产品中成为产品的一部分。1998年uC/OS-II,目前的版本uC/OS -II V2.61,2.72。1.UC/OS-Ⅱ简介。_ucos
文章浏览阅读614次,点赞22次,收藏11次。大家好,本文将围绕python自动化运维需要掌握的技能展开说明,python自动化运维从入门到精通是一个很多人都想弄明白的事情,想搞清楚python自动化运维快速入门 pdf需要先了解以下几个事情。这篇文章主要介绍了一个有趣的事情,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。_运维学python该学些什么
文章浏览阅读524次。2019独角兽企业重金招聘Python工程师标准>>> ..._hotfix for msxml 4.0 service pack 2 - kb832414
文章浏览阅读546次。python和易语言的脚本哪门更实用?_易语言还是python适合辅助
文章浏览阅读134次。详解redis中的锁以及使用场景,指令,事务,分布式,命令,时间详解redis中的锁以及使用场景易采站长站,站长之家为您整理了详解redis中的锁以及使用场景的相关内容。分布式锁什么是分布式锁?分布式锁是控制分布式系统之间同步访问共享资源的一种方式。为什么要使用分布式锁? 为了保证共享资源的数据一致性。什么场景下使用分布式锁? 数据重要且要保证一致性如何实现分布式锁?主要介绍使用redis来实..._redis setnx watch