练习(算术运算及逻辑移位指令3题目)

合集下载

高中对口计算机微机原理14第三章指令练习(课下)

高中对口计算机微机原理14第三章指令练习(课下)

第三章指令练习(综合应用)1.进行有符号数除法AX÷BX2.求寄存器DX和AX组成的32位有符号数的补码3.用位操作指令实现AL(无符号数)乘以74.把DX,AX中的双字逻辑右移4位5.三个字存储单元A、B、C为逻辑数,实现A٨(B٧ C) A 6.设X、Y均为存放在X和Y单元中的16位有符号数,先判X>50否,如满足条件则转移到TOO_HIGH去执行,否则做X-Y,如溢出则转移到OVERFLOW去执行,否则计算∣X-Y∣,并把结果存入RESULT中.7.A、B为两个双精度有符号数,分别存储于DX:AX及BX:CX中。

要求写出指令序列使A>B时转向X执行,否则转向Y执行.8.有一个首地址为ARRAY的M个字的数组,试编写指令序列,求出该数组的内容之和(不考虑溢出),并把结果存入TOTAL单元中.9.计算DATA数据区的100个无符号字数据的平均值,结果保留在AVI字单元中10.有一串L个字符的字符串存储于首地址为ASCII_S的存储区中.如要求在字符串中查找”空格”(ASCII码为20H)字符,找到则继续执行,如未找到则转到NOT_FOUND去执行,编制实现这一要求的指令序列.1 当X>011.Y= 0 当X=0 (-32768≤X≤+32767) 为Y赋值-1 当X<012.已知A,B,C是三个存放有符号数的字节单元,按照递增顺序排列这三个数,顺次放回A,B,C三个存储单元。

13.从20个字的数组ARRAY中找出一个最大数放在MAX字单元中,再找出一个最小数放在MIN字单元中。

14.把以’$’为结尾的字符串STRING中的所有大写字母转换为小写字母。

15.生成前30个斐波纳契数列(一种整数数列, 其中每数等于前面两数之和)存入以ARRAY为首地址的存储区中。

16.冒泡排序法把以ARRAY为首地址的20个有符号字数据按从大到小顺序排列。

汇编练习题

汇编练习题

汇编语言练习题一、基础知识类1. 列出汇编语言中的寄存器及其用途。

2. 解释汇编语言中的指令格式。

3. 什么是标志寄存器?它有哪些常用的标志位?4. 描述汇编程序的基本结构。

5. 如何在汇编语言中进行数据定义?二、数据传送类1. 将AX寄存器的值传送到BX寄存器。

2. 将内存单元[1000H]的值传送到CX寄存器。

3. 将数据段中的一个字节传送到AL寄存器。

4. 实现两个内存单元之间的数据交换。

5. 将一个字的数据传送到DX和AX寄存器。

三、算术运算类1. 计算H + 5678H,并将结果存储在AX寄存器中。

2. 计算H 5678H,并将结果存储在AX寄存器中。

3. 实现16位无符号数的乘法运算。

4. 实现16位无符号数的除法运算。

5. 使用汇编语言实现一个简单的加法计算器。

四、逻辑运算类1. 对AX寄存器的值进行按位取反操作。

2. 计算H和5678H的逻辑与运算结果。

3. 计算H和5678H的逻辑或运算结果。

4. 计算H和5678H的逻辑异或运算结果。

5. 实现一个简单的逻辑表达式求值程序。

五、控制转移类1. 实现一个无条件跳转指令。

2. 根据CX寄存器的值,实现一个循环结构。

3. 使用比较指令和跳转指令实现一个简单的排序算法。

4. 编写一个程序,判断一个数是否为素数。

5. 实现一个多分支选择结构。

六、字符串操作类1. 实现将一个字符串复制到另一个内存区域。

2. 实现字符串的逆序排列。

3. 计算一个字符串的长度。

4. 比较两个字符串是否相等。

5. 在一个字符串中查找某个字符的位置。

七、中断及系统调用类1. 编写一个简单的中断处理程序。

2. 使用INT 21H中断实现屏幕输出一个字符串。

3. 使用INT 21H中断读取键盘输入的字符串。

4. 编写一个程序,实现定时器中断。

5. 使用汇编语言实现系统调用,完成文件读写操作。

八、子程序设计类1. 编写一个子程序,用于计算两个数的最大公约数。

2. 实现一个子程序,能够将十进制数转换为十六进制数。

实验二 算术逻辑运算及移位操作

实验二  算术逻辑运算及移位操作

实验二算术逻辑运算及移位操作一.实验任务1.实验程序段及结果表格如表:分析:程序段1:MOV AX, 1018H ;AX←1018HMOV SI, 230AH ;SI←230AHADD AX, SI ;AX=3322H,低8位为00100010B,1的个数;为偶数,PF=1,同时D3向D4有进位发生,AF=1 ADD AL, 30H ;AX=3352H,低8位1个个数为奇数,PF=0 MOV DX, 3FFH ;DX←3FFHADD AX,BX ;AX=3352H,MOV [20H], 1000H ;[20H]←1000HADD [20H], AX ;[20H]=4352HPUSH AX ;POP BX ;BX=3352H程序段2:MOV AX, 0A0AH ;AX←0A0AHADD AX, 0FFFFH ;AX=0A09H,最高位进位CF=1,低8位1的;个数为偶数PF=1;D3向D4进位AF=1 MOV CX, 0FF00H ;CX←0FF00HADC AX, CX ;AX=090AH,最高位进位CF=1,低8位1的个;数为偶数PF=1SUB AX, AX ;AX=0,运算结果为零ZF=1INC AX ;AX=1HOR CX, 0FFH ;CX=0FFFFH,最高位为1,ZF=1,低8位1的;个数为偶数PF=1AND CX, 0F0FH ;CX=0F0FH,低8位1的个数为偶数PF=1MOV [10H], CX ;[10H]←0F0FH程序段3:MOV BL, 25H ;BL←25HMOV BYTE PTR[10H], 4 ;[10H]←04HMOV AL, [10H] ;AL←04HMUL BL ;AL=94H程序段4:MOV WORD PTR[10H],80H ;[10H]←0080HMOV BL, 4 ;BL←04HMOV AX, [10H] ;AX←0080HDIV BL ;AX=0020H程序段5:MOV AX, 0 ;AX←0000HDEC AX ;AX=0FFFFH,最高位为1,SF=1,低8;位1的个数为偶数PF=1,最高位向前、;D3向D4有借位,CF=1,AF=1 ADD AX, 3FFFH ;AX=3FFEH,D3向D4有进位,AF=1 ADD AX, AX ;AX=7FFCH,低8位1的个数为偶数,PF=1;D3向D4有进位,AF=1NOT AX ;AX=8003HSUB AX, 3 ;AX=8000H,低8位1的个数为偶数,PF=1;最高位为1,SF=1OR AX, 0FBFDH ;AX=0FBFDH,最高位为1,SF=1AND AX, 0AFCFH ;AX=0ABCDH,最高位为1,SF=1SHL AX,1 ;AX=579AH,低8位1的个数为偶数,PF=1,;算数结果溢出OF=1,最高位进位CF=1 RCL AX,1 ;AX=0AF35H,低8位1的个数为偶数,;PF=1,算数结果溢出OF=12.用BX寄存器作为地址指针,从BX所指的内存单元(0010H)开始连续存入三个无符号数(10H、04H、30H),接着计算内存单元中的这三个数之和,和放在0013H单元中,再求出这三个数之积,积放0014单元中。

算术运算指令试题答案

算术运算指令试题答案

算术运算指令试题答案一、选择题1. 下列哪个选项是算术运算的正确描述?A. 加法和减法是唯一的算术运算。

B. 算术运算只适用于整数。

C. 乘法和除法不属于算术运算。

D. 算术运算包括加法、减法、乘法和除法。

答案:D2. 在计算机中执行算术运算时,哪个部件主要负责此功能?A. 控制器B. 内存C. 算术逻辑单元 (ALU)D. 输入输出设备答案:C3. 浮点数运算相比于整数运算,其复杂性主要体现在:A. 需要更多的存储空间。

B. 需要更复杂的算法。

C. 需要更高的计算精度。

D. 以上都是。

答案:D4. 溢出是指在执行算术运算时,结果超出了数据类型所能表示的范围。

以下哪种情况最可能导致溢出?A. 使用相同的操作数进行大量加法运算。

B. 使用大的乘法操作数。

C. 使用小的除法操作数。

D. 所有情况都同样可能导致溢出。

答案:A5. 在二进制系统中,以下哪个操作可以实现对数值的翻倍?A. 左移一位。

B. 右移一位。

C. 增加一个单位。

D. 减去一个单位。

答案:A二、填空题1. 在计算机中,算术运算通常由__________来完成。

答案:算术逻辑单元 (ALU)2. 算术平方根是求一个数的__________,使得这个数的平方等于原数。

答案:平方根3. 当进行除法运算时,如果除数为零,则会产生一个__________错误。

答案:除零4. 在计算机中,整数通常有两种表示方法:原码、反码和__________。

答案:补码5. 浮点数的计算需要遵循IEEE 754标准,该标准定义了浮点数的表示和__________。

答案:运算规则三、简答题1. 请简述算术运算在计算机科学中的重要性。

答:算术运算是计算机科学和信息技术的基础。

它们是计算机处理数据、执行程序和解决复杂问题的基本操作。

从简单的数学计算到复杂的科学和工程模拟,算术运算都是不可或缺的。

此外,算术运算的性能直接影响到计算机系统的整体效率和响应速度。

2. 描述二进制数系统与十进制数系统的主要区别。

汇编语言指令练习

汇编语言指令练习

汇编语言指令练习汇编语言是一种低级计算机语言,用于编写机器指令。

它主要用于底层系统开发和对硬件进行操作。

在学习和使用汇编语言时,熟悉各种指令非常重要。

本文将向你介绍一些常见的汇编语言指令,并提供一些练习来帮助你熟练掌握它们。

1. 数据传送指令数据传送指令用于将数据从一个地方传送到另一个地方。

常见的数据传送指令有:MOV(将数据从一个位置移动到另一个位置)、XCHG(交换两个位置的数据)等。

练习一:编写一个汇编程序,将寄存器AX中的数据传送到寄存器BX中。

2. 算数运算指令算数运算指令用于执行各种算术运算,如加法、减法、乘法和除法等。

常见的算数运算指令有:ADD(加法)、SUB(减法)、MUL (乘法)和DIV(除法)等。

练习二:编写一个汇编程序,将寄存器AX和寄存器BX中的数据相加,并将结果存储在寄存器CX中。

3. 逻辑运算指令逻辑运算指令用于执行逻辑运算,如与、或、非和异或等。

常见的逻辑运算指令有:AND(与运算)、OR(或运算)、NOT(非运算)和XOR(异或运算)等。

练习三:编写一个汇编程序,对寄存器AX中的数据进行逻辑非运算,并将结果存储在寄存器BX中。

4. 条件判断和跳转指令条件判断和跳转指令用于根据条件来执行不同的操作,并改变程序的执行流程。

常见的条件判断和跳转指令有:CMP(比较)、JE(相等时跳转)、JNE(不相等时跳转)等。

练习四:编写一个汇编程序,比较寄存器AX和寄存器BX中的数据,如果相等则跳转到标签“EQUAL”,否则跳转到标签“UNEQUAL”。

5. 函数调用指令函数调用指令用于调用和返回函数,实现程序的模块化设计。

常见的函数调用指令有:CALL(调用函数)和RET(返回函数)等。

练习五:编写一个汇编程序,调用一个名为“add”的函数,该函数将寄存器AX和寄存器BX中的数据相加,并将结果存储在寄存器CX中。

以上是一些常见的汇编语言指令及相应的练习。

通过反复练习这些指令,你将能够更好地理解和掌握汇编语言的编程技巧。

指令例题

指令例题

例1、编程实现将内存中2个3字节数据相加,结果存于内存中。

参考程序:MOV AX,DATA ;取段基值存入AXMOV DS,AX ;DS指向数据段MOV AX,DA1 ;取DA1低两个字节到AX中ADD AX,DA2 ;AX=AX+DA2=DA1+DA2MOV DA3,AX ;保存结果到DA3单元中MOV AL,DA1+2 ;取DA1的第三个字节到AL中ADC AL,DA2+2 ;与DA2的第三个字节和CF相加,存入AL MOV DA3+2,AL ; 保存结果到DA3+2单元中MOV AL,0 ;AL=0ADC AL,0 ;AL=AL+0+CF=0+0+CF=CFMOV DA3+3,AL ;将最后的进位取出并存入DA3+3中HLT习题:编程实现将内存中3个2字节数据相加,结果存于内存中。

参考程序:MOV AX,DATA ;取段基值存入AXMOV DS,AX ;DS指向数据段MOV DL,0 ;进位单元清0MOV AX,DA1 ;AX=DA1ADD AX,DA2 ; AX=AX+DA1=DA1+DA2ADC DL,0 ; DL=DL+0+CF,进位累加到DL ADD AX,DA3 ; AX=AX+DA3=DA1+DA2+DA3 ADC DL,0 ;DL=DL+0+CF,进位累加到DL MOV DA4,AX ;将结果存入DA4MOV D A4+2,DL ; 保存进位位HLT用指针的方法编程实现例1参考程序:MOV AX,DATA ;取段基值存入AXMOV DS,AX ;DS指向数据段LEA BX,DA1 ;BX=DA1的偏移量有效值MOV AX,[BX] ;AX=[BX]=DA1低两个字节ADD AX,[BX+3] ;AX=AX+DA2低两个字节相加MOV [BX+6],AX ;保存结果到DA3单元中INC BX ;指针增1INC BX ;指针增1MOV AL,[BX] ;取DA1的第三个字节到AL中ADC AL,[BX+3] ;AL=AL+DS:[BX+3]+CF MOV [BX+6],AL ;保存结果到DA3+2单元中MOV AL,0 ;进位单元清0ADC AL,0 ;AL=AL+0+CFMOV [BX+7],AL ; 保存进位到DA3+3中HLT例2、编程实现将内存中2个10字节数据相加,结果存入内存中。

练习(算术运算及逻辑移位指令3题目)

练习(算术运算及逻辑移位指令3题目)

练习算术运算与逻辑移位指令1、若AX=0ABCDH,BX=7F8FH,CF=1。

分别执行0886 CPU指令(1)ADD AX,BX (2)ADC AX,BX(3)SBB AX,BX (3)NEG AX(5)AND AX,BX (6)OR AX,BX(7)XOR AX,BX (8)IMUL BL后,AX寄存器中的内容,并指出标志寄存器SF、ZF、AF、PF、CF及OF的状态。

2、若CX=6700H,DX=78FFH,CF=1,求分别执行指令(1)ADD CX,DX (2)ADC CX,DX(3)SUB CX,DX (4)SBB CX,DX(5)AND CX,DX (6)OR CX,DX(7)XOR CX,DX后,CX和DX中的内容。

并指出标志寄存器SF、ZF、AF、PF、CF和OF的状态。

3、X,Y分别为下列各组数,当它们分别进行加、减、AND、OR、XOR运算后,其标志位,SF、OF、CF、PF、ZF的状态如何?(1)X=21H;Y=43H (2)X=9AH;Y=0BCH(3)X=48H;Y=8DH (2)X=54H;Y=54H4、若AX=98ABH,BX=A8BCH,求执行指令ADD AX,BX后,AX与BX中的内容,并指出SF、ZF、AF、PF、CF和OF的状态。

5、针对下列各条指令执行后的结果,填入目的操作数的值及标志位的状态。

指令目的操作数的值CF ZF SF OF PF AF MOV AL,89HADD AL,ALCMP AL,0BCHDEC ALMOV AL,45HAND AL,0FHOR AL,0C3HSHR AL,1RCL AL,16、若AX=FFF8H,BX=FFFAH,求执行IMUL BX后,DX与AX中的内容,并指出标志位OF与CF的状态。

7、若AX=FFFEH,BX=FFFDH,求执行指令IMUL BX后,DX与AX中的内容。

指出标志位OF与CF的状态。

8、设AL=85H,BL=2AH,均为带符号数,求指令 IMUL BL的执行结果。

算术运算指令练习题

算术运算指令练习题

执行加法
将Rn寄存器的值与Rm寄 存器的值相加,并将结果 存储在Rn寄存器中。
更新标志位
根据加法结果更新标志位, 如溢出标志位、进位标志 位等。
加法指令的示例
01
示例1
ADD R1,R2
02
描述
将R2寄存器中的值与R1寄存 器中的值相加,并将结果存储
在R1寄存器中。
03
示例2
ADD R3,#10
04
除法指令也可以采用“操作数1 // 操作数2”的格式,表示进行 整数除法,结果为商的整数部分

除法指令还可以采用“操作数1 /! 操作数2”的格式,表示进行 不精确除法,结果为近似值。
除法指令的执行过程
首先,将操作数1和操作数2分别加载到计算 机的寄存器中。
如果采用“/”格式,则执行浮点数除法,结 果为浮点数;如果采用“//”格式,则执行 整数除法,结果为商的整数部分;如果采用 “/!”格式,则执行不精确除法,结果为近 似值。
然后,根据除法指令的格式,执行相应的除 法运算。
最后,将运算结果存储在指定的寄存器中, 以供后续指令使用。
除法指令的示例
示例1
假设寄存器A中存储的值为10,寄存器B中存 储的值为2,执行指令“A / B”后,寄存器A 中的值变为5.0(因为10除以2等于5)。
示例2
假设寄存器C中存储的值为12,寄存器D中存 储的值为3,执行指令“C // D”后,寄存器C 中的值变为4(因为12除以3等于4)。
乘法指令的示例
MUL R1, R2, R3
将R2和R3中的值相乘,结果存放在 R1中。
MUL R1, #10, [R2]
将R2指向的内存地址中的值与10相乘 ,结果存放在R1中。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

练习
算术运算与逻辑移位指令
1、若AX=0ABCDH,BX=7F8FH,CF=1。

分别执行0886 CPU指令
(1)ADD AX,BX (2)ADC AX,BX
(3)SBB AX,BX (3)NEG AX
(5)AND AX,BX (6)OR AX,BX
(7)XOR AX,BX (8)IMUL BL
后,AX寄存器中的内容,并指出标志寄存器SF、ZF、AF、PF、CF及OF的状态。

2、若CX=6700H,DX=78FFH,CF=1,求分别执行指令
(1)ADD CX,DX (2)ADC CX,DX
(3)SUB CX,DX (4)SBB CX,DX
(5)AND CX,DX (6)OR CX,DX
(7)XOR CX,DX
后,CX和DX中的内容。

并指出标志寄存器SF、ZF、AF、PF、CF和OF的状态。

3、X,Y分别为下列各组数,当它们分别进行加、减、AND、OR、XOR运算后,其标志位,SF、OF、CF、PF、ZF的状态如何?
(1)X=21H;Y=43H (2)X=9AH;Y=0BCH
(3)X=48H;Y=8DH (2)X=54H;Y=54H
4、若AX=98ABH,BX=A8BCH,求执行指令ADD AX,BX后,AX与BX中的内容,并指出SF、ZF、AF、PF、CF和OF的状态。

5、针对下列各条指令执行后的结果,填入目的操作数的值及标志位的状态。

6、若AX=FFF8H,BX=FFFAH,求执行IMUL BX后,DX与AX中的内容,并指出标
志位OF与CF的状态。

7、若AX=FFFEH,BX=FFFDH,求执行指令IMUL BX后,DX与AX中的内容。

指出标志位OF与CF的状态。

8、设AL=85H,BL=2AH,均为带符号数,求指令 IMUL BL的执行结果。

9、若AL=78H,BL=87H,
(1)求执行指令
ADD AL,BL
DAA
之后,AL=?标志位AF=?CF=?并说明BCD码调整情况。

(2)若执行指令SUB AL,BL与DAS后,情况又如何?
10、若AL=75H,BL=48,
(1)求执行指令
ADD AL,BL
DAA
之后,AL=?标志位AF=?CF=?并说明BCD码调整情况。

(2)若执行指令SUB AL,BL与DAS后,情况又如何?
11、若有一个4字节数,放在寄存器BX间址的内存中(低地址对应低字节),要求这个4字节整数整个左移一位如何实现?右移一位又如何实现?
12、若有一个四字节数,放在寄存器DX与AX中(DX放高16位),要求这个四字节数整个左移一位如何实现?右移一位又如何实现?
13、分别编写一程序使
(1)AX寄存器高3位清0;
(2)BX寄存器高3位置1;
(3)CX寄存器高4位取反;
(4)DX寄存器高3位不变,其余位清0。

相关文档
最新文档