分支程序设计1任意输入5个整数输出其中的最大值
1)获取用户输入的五个整数
2)判定五个整数中的最大值
3)输出最大值
其中第二点位重要的 很多方式,取一个简单的
//设定一个最大值变量
Int Max=0;
//把用户输入的值放在数组中
Int[5] intLis=new Int[5]
Int[0]=数值1
Int[1]=数值2
. .
. .
Int[5]=数值5
//循环判断出最大值
//这个位置是
//循环判断数组中
//每个数字与这个数字之前的所有数字中最大的数字
//如果当前数字大于之前的最大数字 则吧Max改为当前的 反之不变
for(int i =0i<= intLis.Lenghi++){
if(int[i]>Max){
Max=int[i]
}
}
不知道你题目中的塔是柱状塔还是锥状塔,对于柱状塔,源代码如下。
#include "stdio.h"
#include "math.h"
double Dist(double x1, double y1, double x2, double y2)
{
return sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * ( y1 - y2))
}
double GetHigh(double x, double y),
{
int signx = 1, signy = 1
if(x <0) signx = -1
if(y <0) signy = -1
if(Dist(x, y, signx * 10, signy * 10) <= 2.0)
return 25
else 0
}
void main( )
{
double x, y
scanf("%lf%lf", &x, &y)
printf("high = %lf", GetHigh(x, y))
}
如果是锥状塔,将求高度的函数代码修改如下,其余的代码同上:
double GetHigh(double x, double y)
{
int signx = 1, signy = 1
double dist
if(x <0) signx = -1
if(y <0) signy = -1
dist = Dist(x, y, signx * 10, signy * 10)
if(dist <= 2.0)
return 25 * (2.0 - dist) / 2.0
else 0
}
#include<math.h>
bool isPrime(int n){
int i
if(n==1) return false
for(i=2i<=sqrt(n)i++){
if(n%i==0){
return false
}
}
return true
}
int main(){
int i,sum=0
for(i=1i<=1000i++){
if(isPrime(i)){
sum+=i
}
}
printf("sum=%d\n",sum)
}
例
双字长数存放于dx和ax寄存器(高位于dx),求该数的绝对值(用16位指令)
算法分析:判断数正负,正数(首位为0),不需处理,负数(首位为1),对该数求补,即反码加一
复合分支程序
例
从键盘输入一位十六进制数,将其转换为十进制数显示输出
算法分析:
输入为数字(30h~39h),直接输出
为大写字母A~F(41h~46h)时,可减11h
a~f时(61h~66h),可减去31h得到30h~35h(0~5的ascii码),再输出2位十进制数字,
其他输入为非法输入,退出程序
多分支程序
采用分支向量表法,int 21h指令就是根据中断类型号21h*4得84h直接到84h内存中的向量表取出中断向量(即系统子程序的首地址),来执行一段程序,我们把各分支地址集中存放于分支向量表中,根据分支号快速进入分支
例
根据键盘输入的一位数字1~4,使程序转移到4个不同的分支中去,以显示键盘输入的数字
算法分析:建立一个分支向量表branch,集中存放4个分支的偏移地址,因偏移地址为16位,所以每两个字节存放一个偏移地址,据输入的数字指向分支向量表,从表中取出对应分支的偏移地址,用jmp branch[bx]指令间接寻址方式转向对应分支
循环程序设计
循环有两种结构,do while和do null
do while先判断条件,再执行循环,do null先循环一遍再判断要不要下次循环
例
把bx寄存器中的二进制用16进制数格式显示输出
算法分析:
bx寄存器每4位表示一位16进制数位,从左到右循环移位,每移四位,就把要显示的4位二进制位移到最右边。取出最右边的4位,加上30h,转换成8位ascii字符码。因显示输出的十六进制是数字(30h~39h)和A~F(41h~46h),所以8位二进制大于39h时,应再加上7,程序采用计数循环,计数值为4
例
从键盘输入一个四位的十六进制数(其中字母大写),并将其转换为二进制数显示输出
算法分析:该程序需要两段循环,第一个循环接收键盘输入的16进制数,30h~39h时减30h,输入为41h~46h时,减37h,应把四次的输入拼装成四位16进制数存放在bx寄存器,第二个循环利用16次位移从左到右显示bx寄存器中的二进制数
条件循环程序
循环体有分支时,依据标志位判断,标志位为1表示执行a操作,为0表示执行b操作等,把这种标志字称为逻辑尺
例
先从键盘输入8位二进制数作为逻辑尺,再从键盘输入一个英文字母,根据逻辑尺当前的最高位标志显示输出该英文字母的相邻字符,标志位为0则显示前趋字符,标志位为1则显示其后继字符,显示相邻字符后,逻辑尺循环左移一位再接收下一个英文字母的输入,并依据逻辑尺显示相邻字符,直到回车键结束程序
算法分析:8位二进制数的输入构成一个8次循环,把输入整合到
8位寄存器bl中。键盘输入一个英文字母后依据逻辑尺最高标志位显示相邻字符,把最高位移到cf位,以cf位决定显示,构成一个条件循环,以回车键退出循环
打开CSDN,阅读体验更佳
算法导论考试题目_Spike_Bebop的博客
A 子问题必须是一样的 B 子问题不能够重复 C 子问题的解可以合并 D 原问题和子问题使用相同的方法解 14.下列算法中不能解决0/1背包问题的是(A ) A 贪心法 B 动态规划 C 回溯法 D 分支限界法 ...
继续访问
Matlab入门基础详解_weixin_43731886的博客
1.直接输入法 matlab在创立数组时以逗号或空格表示分列,分号或回车表示分行。数组开头“[”、结尾“]” 行数组:如a=[1,2,3,8,-1] 列数组: b=[1238-1] 或a’ 矩阵:A= [2,4,18:-2:42,4,6] ...
继续访问
实验1:汇编语言语法练习与分支循环子程序设计.doc
实 验 报 告 2018 / 2019 学年 第 1学期 课程名称 微型计算机原理与接口技术 实验名称 实验1汇编语言语法练习与分支循环子程序设计 实验时间 2018 年 10 月 22 日 指导单位 通信工程学院 指导教师 祁正华 学生姓名 杨单妮 班级学号 17120205 学院(系) 通信工程学院 专 业 通信工程 PAGE 5 实 验 报 告 实验名称 汇编语言语法练习与分支循环子程序设
热门推荐 第一章: 利用神经网络识别手写数字
人类视觉系统是大自然的一大奇迹。 考虑下面的手写数字序列: 大部分人能够毫不费力的识别出这些数字是 504192。这种简单性只是一个幻觉。在我们大脑各半球,有一个主要的视觉皮层,即V1,它包含1.4亿个神经元以及数以百亿的神经元连接。而且人类不只是有V1,还有一系列的视觉皮层——V2,V3,V4和V5,它们能够执行更加复杂的图像处理。我们可以将大脑想象成一台超级计算机
继续访问
数据结构复习提纲(必考知识点整理)_a1043362562的博客_数据...
1.数据:数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序所处理的符号的总称。 2.数据元素:数据元素是数据的基本单位,是数据这个集合中的个体,也称之为元素,结点,顶点记录。
继续访问
MATLAB基础_dfql83704的博客
3.2.1 直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素,输入的方法按照上面的规则。建立向量的时候可以利用冒号表达式,冒号表达式可以产生一个行向量,一般格式是: e1:e2:e3,其中e1为初始值,e2为步长,e3为终止值。还可以...
继续访问
微机原理与接口技术-指令
上级目录 目录 指令分类 数据传送指令 通用数据传送指令 累加器专用传送指令 地址传送指令 标志传送指令 数据类型转换指令 算数运算指令 加法指令 减法指令 乘法指令 除法指令 十进制调整指令 位运算指令 逻辑运算指令 移位指令 循环移位指令 串操作指令 基本串操作指令 重复前缀指令 控制转移指令 无条件转移指令(长转移) 条件转移指令(短转移, -128~127的距离内) 循环控制指令 过程调用与返回指令 中断指令 处理器控制指令 标志位操作指令
继续访问
8086系列(8):逻辑尺
题目 设有数组X和Y。X数组中有X1,…,X10;Y数组中有Y1,…,Y10。试编制程序计算Z1=X1+Y1,Z2=X2+Y2,Z3=X3-Y3,Z4=X4-Y4,Z5=X5-Y5,Z6=X6+Y6,Z7=X7-Y7,Z8=X8-Y8,Z9=X9+Y9,Z10=X10+Y10,结果存入Z数组。 思路 对于这种问题可以使用循环结构来完成,由于每次循环的操作位不同,我们可以事先设立标志位存放于逻辑尺中,进入循环后取出每一个位就可以判断做哪种操作了。 代码 datasg segment x dw 0,1,
继续访问
数据结构算法笔记_Alanders的博客
所有的简单排序方法(包括:直接插入、冒泡和简单选择)和堆排序的空间复杂度为O(1) 快速排序为O(logn),为栈所需的辅助空间 归并排序所需辅助空间最多,其空间复杂度为O(n) 链式基数排序需附设队列首尾指针,则空间复杂度为O(rd) 排...
继续访问
[学习笔记] python深度学习---第四章 机器学习基础_Cr_南猫的博客-CS...
一、机器学习的四个分支 1. 监督学习 这属于目前最常见的机器学习类型。给定一组样本,它可以学会将输入数据映射到已知目标(也叫标注annotation)。近年来广受关注的深度学习应用几乎都属于监督学习,比如光学字符识别、语音识别、图像识别和...
继续访问
逻辑尺的使用
今天看汇编程序,看到一道题,X1-Y1,X2-Y2,X3+Y3....X8-Y8,X9+Y9,X10-Y10,加法,减法毫无规律可循,最后书本介绍了“逻辑尺”的方法:设置一个设置了一个字型的变量,然后使用逻辑右移,读取CF中的1/0,从而确定知道该次运算的预算法则。闲来无聊,便用JAVA模拟了一下逻辑尺的使用package logicRule/* * 逻辑尺的模拟使用 *
继续访问
汇编语言实现四则运算
32 位模式下,MUL(无符号数乘法)指令有三种类型: 第一种执行 8 位操作数与 AL 寄存器的乘法; 第二种执行 16 位操作数与 AX 寄存器的乘法; 第三种执行 32 位操作数与 EAX 寄存器的乘法。 例如,当 AX 乘以一个 16 位操作数时,乘积存放在 DX 和 AX 寄存器对中。其中,乘积的高 16 位存放在 DX,低 16 位存放在 AX 32 位模式下,DIV(无符号除法)指令执行 8 位、16 位和 32 位无符号数除法。其中,单寄存器或内存操作数是除数。格式如下: ..
继续访问
慕课袁春风老师《计算机系统基础》一二三部分练习题_GloomyHarbor的博客...
解析: D、现代计算机的主存储器由半导体存储器构成,其中存放信息的地方称为存储阵列每个存储阵列包含若干个存储单元,每个存储单元由若干个记忆单元(cell)构成,每个记忆单元存放一位信息(0或1)。 某一台计算机的主存储器编址方式,总是...
继续访问
python中的小知识点_代码小学渣的博客
input().split()用法:接收多个输入。返回的数据类型是str year,month,day=map(int,input().split('/'))#2018/2/1#如果是整数就需要转化为int才能正常使用。 map()用法:map(function, iterable, …),python3 返回迭代器,要加li...
继续访问
汇编语言程序设计 实验6 分支程序设计
本文章为个人博客的备份版本、作者:小游、作者博客:点击访问 实验目的:掌握分支程序的基本编程方法。熟悉数制转换。用LOOP指令、条件转移指令和向量地址法实现程序转移。 1.编写程序,如果输人的是大写字母,则输出对应的小写字母;如果输入的是小写字母则输出对应的大写字母;如果输人的是数字,原样输出;按回车结束。 code segment assume cs:code 代码部分 start: inchr: 这里我们读取键盘的输入 mov ah,1 输入字符 int 21.
继续访问
汇编语言及应用——分支结构程序设计
一、实验目的 掌握条件转移指令的使用方法及指令对标志寄存器中各标志位的影响;掌握标志位和转移指令之间的关系;会用条件转移指令和无条件转移指令设计多分支结构程序;掌握设置断点调试程序的方法。 二、示 例 内存自BUF单元开始的缓冲区连续存放着10个学生的英文分数,编程序统计其中90~100,60~89,60以下者各有多少人?并把90-100分人数结果存放在P1单元中、60-89分人数结果存放在P2单元中,60分以下人数结果存放在P3单元中(P1、P2、P3为数据段的单元),最后把P1、P2、P3中的数以”P
继续访问
汇编语言编一程序段,求双字(DX,AX)的绝对值
a100 mov ax,ffff;把双字长数的低字放到AX中 mov dx,ffff;把双字长数的高字放到DX中 test dx,8000;测试双字长数的符号 jz 0113;如果是非负数,则直接保存 neg dx;如果是负数,则求补 neg ax;求补 sbb dx,0 int 3 g=073f:0100 0113 运行附图如下: ...
继续访问
汇编语言的程序设计方法(循环结构和分支结构)
汇编语言中常见的形式有:顺序程序设计,分支程序设计,循环程序设计以及子程序设计 1.今天通过实例来详细说明分支程序设计,和循环程序设计 分支程序设计实例 给定一下符号函数: 给定X值,假设为-25,且存放于X单元,函数值Y存放于Y于单元,根据给定的X值确定Y得值 程序如下 DATAX SEGMENT x DB-25 y DB? DATAX ENDS CODEX SEG...
继续访问
第五章 5.7汇编程序设计举例
5.7汇编程序设计举例 汇编源程序的设计步骤: ①分析问题,建立数学模型 ②确定最佳算法 ③合理分配存储单元和寄存器 ④绘制流程图 ⑤编写程序 ⑥调试程序 5.7.1程序基本结构 程序设计的三种基本结构:顺序结构、选择结构、循环结构 顺序结构:顺序结构程序中,完全按照指令先后顺序逐条执行。 选择结构 选择结构又称分支结构,有以下两种形式: ①它们共同的特点是:运行方向是向前的,在某一种特定条件下,只能执行多个分支中的一个分支。 ②程序的分支一般用...
继续访问
微机原理复习整理
第一章 微型计算机系统概述 1. 微型计算机系统组成 微处理器:运算器、控制器、寄存器 微型计算机:输入输出接口、总线、内存 微型计算机系统:由硬件和软件共同组成的完整的计算机系统 2. 系统总线 地址总线AB 输出将要访问的内存单元或I/O端口的地址 地址线的多少决定了系统直接寻址存储器的范围 数据总线DB CPU读操作时,外部数据通过数据总线送往CPU CPU写操...
继续访问
树状数组
树状数组 学之前感觉这是个非常非常难的数据结构,学完才发现也没有想象中那么难,但是题可以出的非常难。 这里就有一些同学坚持认为树状数组没有用,其实树状数组虽然功能少一点,却也是很有优势的。1.常数小;2.代码短;3.内存小; 翻了翻学习资料的文件夹,发现关于这两个数据结构的课件还是比较多的,难度分布也非常的广泛... 前两天强行抓着wzx讲这个,感觉在讲的过程中自己也更明白...
继续访问
ARM异常、中断以及他们的向量表分析
作者:wogoyixikexie@gliet以前,我一直很疑惑这个“ARM异常、中断以及他们的向量表”是怎么回事,他们到底是怎么实现的,没有想到今天偶然看到(ARM System Developers Guide: Designing and Optimizing System Software的ARM异常、中断以及他们的向量表的章节,豁然开朗。——ARM嵌入式系统开发:软件设计与优
继续访问
Java基础之数组与集合
Java基础之数组与集合一、数组 一、数组 数组保存的是一组有顺序的、具有相同类型的数据。在一个数组中,所有数据元素的数据类型都是相同的。可以通过数组下标(索引)来访问数组,数据元素根据下标的顺序,在内存中按顺序存放。本节的主要内容是介绍数组的基础知识。 数组的定义: 数据类型 数组名 [] = new 数据类型[数组长度] 要想知道数组的大小可以使用数组的 length 属性 语法:数组名.length 初始化: int arr [] = new int[12]arr[0] =
继续访问
【汇编程序】求一个双字节数AX:BX的绝对值,放入CX:DX中。
【汇编程序】求一个双字节数AX:BX的绝对值,放入CX:DX中,高位放入CX CODE SEGMENT ASSUME CS:CODE START: MOV CX,AX MOV DX,BX TEST CX,8000H 将CX与8000H与操作 看是否最高位为1 JZ EXIT 若结果为0 则为整数 结束dos NOT DX NOT CX ADD DX,1 将BX取反+1 即求补 ADC CX,0 目的是将CF进位加进去 因为为双字 末
继续访问
汇编实验二 分支与循环程序设计
实验二 分支与循环程序设计 一、实验目的 1、掌握程序设计中的3种基本结构(顺序结构、选择程序、循环程序)。 2、熟练使用汇编语言的指令:数据传送类指令、数据运算类指令、逻辑判断类指令与转移指令、循环指令等。 3、初步了解系统功能调用的使用方法,尝试使用01H号功能调用进行字符输入的方法及使用02H号功能调用进行字符输出(显示)的方法。 二、实验环境与设备 计算机一台,并且安装Windows操作系统和macro assembler 5.0以上版本的系统软件。 三、预备知识 1、掌握汇编...
继续访问
汇编语言的分支程序设计与循环程序设计
汇编语言的分支程序设计: 例题1:比较三个无符号数的大小,按照从大到小的顺序排列 关键的语句是:无符号数,因此所用语句是JAE实现跳转: 此外比较两个操作数所用的是CMP,交换两个操作数的是XCHG 书上的代码: 代码1:这样写法比较占用寄存器,但是寄存器之间交换数值比较快 程序名称:实现三个无符号数的由小到大的排序 DATAS SEGMENT BUFFER DB ...
继续访问
Part2【程设】分支程序设计+循环程序设计
一、分支程序设计 if语句的易错点、switch的易错点。 二、循环程序设计 for循环、while、do-while常见的错误。
继续访问
最新发布 win32汇编·指令
win32汇编·指令常用伪指令数字常量字符串常量预留空间复制重复符号定义伪指令等号伪指令操作符伪指令算术运算符逻辑操作符关系操作符框架定义样例函数声明语句include 语句程序结束跨行语句数据存放invoke伪指令MessageBox输入输出有关的API函数printfscanf分支与循环单分支结构无符号类比IF_THEN_ELSE结构升序数组查找一个数(折半查找)SWITCH_CASE结构分支程序 [名字] 助记符 <操作数>[注释] 常用伪指令 类型 助记符 简写 字节数 数字
继续访问
使用分支向量
Assume CS:Code
Mov_Data_Block Proc far
这是一个段间调用子程序
功能:将源数据块复制到目的数据块
入口参数:SI=源数据块偏移地址,DI=目的数据块偏移地址,CX=数据块字节数
pushf 入栈保存标志寄存器
push es 入栈保存附加段段址
push si 入栈保存源变址寄存器
push di 入栈保存目的变址寄存器
push cx 入栈保存计数寄存器
push ds
pop es 假定源数据块与目的数据块在同一个段
cmp si,di 源数据块偏移地址=目的数据块偏移地址?
jz @@Return 相等,不复制,返回调用程序
cmp si,di 源数据块偏移地址<目的数据块偏移地址?
jb @@Dec_Copy 降序复制
cld 变址寄存器递减
rep movsb 升序复制
jmp @@Return
@@Dec_Copy: std 变址寄存器递增
add si,cx
dec si
add di,cx
dec di
rep movsb 降序复制
@@Return: pop cx
pop di
pop si
pop es
popf
ret
Mov_Data_Block EndP
Code Ends
END Mov_Data_Block 编译到此结束
② jmp short change_addr ;short是伪指令,跳转的标号是change_addr
③ change_addr: inc bx ;BX指向下一个数
④ loop compare ;循环
判别键盘上输入的字符;若是1-9字符,则显示之;若为A-Z或a-z字符,均显示“c”;若是回车字符,则结束程序,若为其它字符则不显示,继续等待新的字符输入。
data segment
DB 0
data ends
code segment
assume cs:code,ds:data
main proc far
push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
next:
mov ah,07
int 21h
cmp al,0dh
jE end_d
cmp al,'0'
JGE DY0 >=0
JMP NEXT <'0'...30H
DY0:
CMP AL,'9'
JLE IS_09
CMP AL, 'A'
JGE DY_A DAYU A
JMP NEXT <'A'...41H
DY_A:
CMP AL,'Z'
JLE IS_AZ
CMP AL,'a'
JGE DY_xA DAYU xA
JMP NEXT <'a'...61H
DY_xA:
CMP AL,'z'
JLE IS_AZ
JMP NEXT
......................
IS_AZ:
MOV AH,02
MOV DL,'c'
INT 21H
JMP NEXT
IS_09:
MOV AH,2
MOV DL,AL
INT 21H
JMP NEXT
end_d:
ret
main endp
code ends
end main
;=============================================================
;B题:
data_C segment
DATA DB-1 , 4, 9 该处3数值可任意设定
A1 DB 0
A2 DB 0
A3 DB 0
DISP_MESS DB 0DH,0AH,'MIN IS : '
D1 DB 0
D2 DB 0, 'H$'
data_C ends
code segment
assume cs:code,ds:data_C
main proc far
push ds
sub ax,ax
push ax
mov ax,data_C
mov ds,ax
MOV BX, OFFSET DATA
MOV AL,[BX]
INC BX
MOV AH,[BX]
CMP AL,AH
JL ALAL1 AL<AH
XCHG AH,AL
ALAL1:
INC BX
MOV DL,[BX]
CMP AL ,DL
JL ALAL
XCHG AL,DL
ALAL:
CMP AH,DL
JL AL_SMALL
XCHG AH,DL
AL_SMALL:
MOV A1,DL
MOV A2,AH
MOV A3, AL
XOR DL,AL 最大和最小数异或
AND DL,80H
NOT DL
TEST DL,80H 高位为1 表示一正一负,否则为全负或全正
JE YZYF
AND AL,80H
NOT AL
TEST AL,80H 高位为1 表示全负
JE QF
MOV AH,02
MOV DL,'+'
INT 21H
JMP DISP_SMALL
QF:
MOV AH,02
MOV DL,'-'
INT 21H
JMP DISP_SMALL
YZYF:
MOV AH,02
MOV DL,'*'
INT 21H
DISP_SMALL: ;显示最小值
MOV AL,A3
MOV AH,AL
AND AX,0F00FH
MOV CL,4
SHR AH,CL
CMP AH,0AH
JGE IS_AZ
ADD AH,30H
MOV D1,AH
JMP NN_1
IS_AZ:
ADD AH,40H -0AH+1
MOV D1,AH
NN_1:
CMP AL,0AH
JGE IS_AZ1
ADD AL,30H
MOV D2,AL
JMP NN_2
IS_AZ1:
ADD AL,40H -0AH+1
MOV D2,AL
NN_2:
MOV AH,09
MOV DX,OFFSET DISP_MESS
INT 21H
ret
main endp
code ends
end main
因为你先在这样,一旦遇到一个不符合成绩的数,你会直接把y清零。
换成continue,则是如果不符合,跳过这个成绩不做计算,人数、分数都不做计算那种
(1)10000H-1FFFFH
(2)12340H-2233FH
(3)23000H-32FFFH
(4)E0000H-EFFFFH
(5)AB000H-BAFFFH
12、若当前SS=3500H,SP=0800H,堆栈段在存储器中的物理地址为35800H,若此时入栈10个字节,SP内容是07F6H,若再出栈6个字节,SP为07FCH
3、
(1)MOV
AX,[100H]源操作数字段的寻址方式是直接寻址,物理地址值是
10100H
(2)MOV
AX,VAL源操作数字段的寻址方式是直接寻址,物理地址值是
10030H
(3)MOV
AX,[BX]源操作数字段的寻址方式是寄存器间接寻址,物理地址值是
10100H
(4)MOV
AX,ES:[BX]源操作数字段的寻址方式是寄存器间接寻址,物理地址值是
20100H
(5)MOV
AX,[SI]源操作数字段的寻址方式是寄存间接寻址,物理地址值是
100A0H
(6)MOV
AX,[BX+10H]源操作数字段的寻址方式是寄存器相对寻址,物理地址值是
10110H
(7)MOV
AX,[BP]源操作数字段的寻址方式是寄存器间接寻址,物理地址值是
35200H
(8)MOV
AX,VAL[BP][SI]源操作数字段的寻址方式是基址变址寻址,物理地址值是
10100H
(9)MOV
AX,VAL[BX][DI]源操作数字段的寻址方式是基址变址寻址,物理地址值是
10124H
(10)MOV
AX,[BP][DI]源操作数字段的寻址方式是基址变址寻址,物理地址值是
35224H
6、
(1)MOV
DL,AX类型不匹配,字节与字不能传送
(2)MOV
8650H,AX
目的操作数不能为立即数
(3)MOV
DS,0200H
立即数不能送段寄存器
(4)MOV
[BX],[1200H]
两内存单元不能直接操作
(5)MOV
IP,0FFH操作数不能为IP
(6)MOV
[BX+SI+3],IP
操作数不能为IP
(7)MOV
AX,[BX][BP]两个基寄存器不能同时作为地址
(8)MOV
AL,ES:[BP]
可以是正确的
(9)MOV
DL,[SI][DI]两变址寄存器不能同时作为地址
(10)MOV
AX,OFFSET
0A20H错误在OFFSET不用作为数值地址操作符
(11)MOV
AL,OFFSET
TABLE类型不匹配,地址为字,不能传送给字节
(12)XCHA
AL,50H
立即数不用作为XCHG指令的操作数
(13)IN
BL,05H
输入指令为累加器专用指令,不用BL,只能用AL
(14)OUT
AL,0FFEH
端口地址超过8位应该用DX间接寻址
7、
LEA
BX,TABLE
MOV
AL,5
XLAT
MOV
DH,AL
MOV
AL,7
XLAT
MOV
DL,AL
MOV
BX,DX
8、
PUSH
AX
SP=00FEH
PUSH
BX
SP=00FCH
POP
BX
SP=00FEH
POP
AX
SP=0100H
1、
A1
DW
23H,
5876H
变量占4个字节
A2
DB
3
DUP(?),
0AH,
0DH,
‘$’变量占6个字节
A3
DD
5
DUP(1234H,
567890H)
变量占40个字节
A4
DB
4
DUP(3
DUP(1,
2,
‘ABC’))
变量占60个字节
2、
MOV
AX,0066H
MOV
AL,0FFH
MOV
AX,0FFH
AND
AL,2
OR
AX,02FFH
4、
PLENTH的值为22,表示PLENTH与PAR之间的字节数
7、用1024×1位的RAM芯片组成16K×8位的存储器,需要128个芯片,在地址线中有10位参与片内寻址,6位组合成片选择信号(设地址总线为16位)
8、现有一存储体芯片容量为512×4位,若要用它组成4KB的存储器,需要16个这样的芯片,每块芯片需要9条寻址线,整个存储系统最少需要12条寻址线。