微机原理 pdf编码计算 求AX和CF 最好有详细过程

豆丁微信公众号
君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口微机原理及应用A试题库及答案1 南京廖华
微机原理及应用A试题库及答案1
1. 使用二进制8位表达无符号整数,257有对应的编码吗? 没有。使用二进制8位表达无符号整数,257没有对应的编码。 2. 字符“'F'”和数值46H作为MOV指令的源操作数有区别吗? 字符“'F'”的ASCII码就是数值46H,所以没有区别。 3. 为什么可以把指令“MOV AX, (34+67H)*3”中的数值表达式看成是常量? 汇编程序在汇编过程中对数值表达式计算,得到一个确定的数值,故称数值表达式为常量。
4. 数值500,能够作为字节变量的初值吗? 不能。数值500大于一个字节所能表达的数据量,所以不能为字节变量赋值。 5. 为什么说“XCHG EDX,CX”是一条错误的指令? 源、目标寄存器位数不同,不能用该指令进行数据交换。 6. 都是获取偏移地址,为什么指令“LEA EBX, [ESI]”正确,而指令“MOV EBX, OFFSET[ESI]”就错误? 前者在指令执行时获得偏移地址,是正确的;但后者的OFFSET只能在汇编阶段获得偏移地址,但此时寄存器内容是不可知的,所以无法获得偏移地址。
7. INC,DEC,NEG和NOT都是单操作数指令,这个操作数应该是源操作数还是目的操作数? INC,DEC,NEG和NOT指令的操作数既是源操作数也是目的操作数。 8. 大小写字母转换的规律是什么?给出转换的公式。 大小写字母转换利用它们的ASCII码相差20H。
第4章 指令系统 一.选择 1. 11. 计算机内的“溢出”是指其运算的结果 (
A.无穷大或无穷小 B.超出了内存单元所能存储的数值范围
C.超出了寄存器能存储数值的范围 D.超出了该指令所指定的结果能存储的数值范围 2. 计算机内的“溢出”是指其运算的结果 (
A.无穷大或无穷小
B.超出了内存单元所能存储的C.超出了寄存器能存储数值的范围 D.超出了该指令所指定的结果能存储数值范围
的数值范围 3. 16位二进制无符号数的数值范围是( )。
11. 顺序执行PUSH
EAX和POP EBX两条指令,其功能等同于(
EBX, EAX C.XCHG
B.ASCII码
D.格雷码 A.0 ~ 65535
B.0 ~ 65536 C.0~ 32767
D.0 ~ 32768 4. 最大的10位无符号二进制整数转换成十进制数是
D. 1024 A.ZF
D. TF A.ZF
D. DF A.ZF
D. IF A.线路故障
D.单步 A.不产生任何中断
B. 会产生内部中断
C. 会产生外部中断
D. 会产生单步中断 A. MOV AX,BX
B. MOV BX,AX C. PUSH AX
D. MOV CX,AX POP BX
MOV AX,BX
MOV BX,CX 5.
ADD 指令不能影响标志寄存器的(
)位。 6. INC 指令不能影响标志寄存器的(
)位。 7. DEC 指令不能影响标志寄存器的(
)位。 8. 在执行DIV或IDIV指令发生错误时会产生(
)中断。 9. 在执行ADD或SUB指令发生溢出错误时(
)。 10. 完成同指令XCHG AX,BX相同功能的指令或指令序列是(
)。 12. 目前在微机中最普遍采用的字符的编码是(
)。 13. 已知X、Y的补码分别为B、B,求X+Y的补码等于(
D. 溢出 14. 计算机中(
)不能直接表示有符号数。
D.BCD码 15.
下列字母中,ASCII码值最小的是(
1,1 16. 当执行完下列指令序列后,标志位CF和SF的值为(
)。 二.名词解释 1. Program flow control instructions
程序流程控制指令 2.
OFFSET Operator:在汇编阶段取得变量的偏移地址。 3.
Loop Counter循环计数器,一般为ECX 4. . Pseudo Code:伪代码,又称虚拟代码,是高层次描述算法的一种。 5.
Single Dimension Array:一位数组 6. Conditional Loop Instructions:条件循环指令利,用条件转移指令决定是否进行循环。 7. Arithmetic instructions:算数指令 8. Jumps Based on Unsigned Comparisons:无条件转移比较 三.判断 1.
VAR是数据段中定义的字变量,指令MOV
AX,VAR+2是正确的。T 2. VAR1和VAR2是数据段中定义的字变量,指令MOV
AX, VAR1-VAR2是正确的。T 3. VAR1和VAR2是数据段中定义的字变量,指令MOV
AX, VAR1+VAR2是正确的。F 4. 执行乘法指令IMUL
src时,运算结果不会产生溢出。 5. 执行乘法指令IMUL
REG,src时,运算结果不会产生溢出。 6. 定义符号常量时,使用“=”与“EQU”没有区别。F 7. 地址操作符OFFSET可以获取任何寻址方式的内存变量的有效地址。F 8. 指令“SHL”与“SAL”的功能是等价的。T 9. 指令“SHR”与“SAR”的功能是等价的。T 10. 指令“LOOP
Lable ”与“DEC ECX JNZ
Lable”的功能是等价的。T 11. 32位机不能完成64位整数加法运算。F 12. 只有补码才能表示有符号数。F 13. 指令“LEA”可以获取任何寻址方式的内存变量的有效地址。T 14. 指令“LEA”可以实现求两个寄存器与一个立即数三个数之和的功能。T 15. 堆栈内部中的数据是无法修改的。F 四.填空 1. 顺序执行指令“XOR EAX, EAX”和“SUB EAX, 1”后,EAX=_0_,CF=_0_。 2. 数据段有语句“BUF
DUP( 2,? ) ,3 ,4 ,5)”,则用“LENGTHOF
BUF”会得到数值为_576_,用“SIZEOF
BUF”会得到数值为_144_。 3. 已知AL=B,执行指令“AND AL,5FH”后,AL=_41H_;如果AL的内容是某个ASCII码,则代表字符_!_。 4. 已知AL=B,执行指令“OR AL,20H”后,AL=_71H_;如果AL的内容是某个ASCII码,则代表字符_q_。 5. 设字长为八位,-128补=_80_H, -1补=_ff_H。 6. 已知:寄存器AX=7836H,指令: TEST
AX,9A5EH执行后,
OF=_0_,SF=_0_。 7. 已知:寄存器AX=7836H,指令: CMP
AX,9A5EH执行后,
AX=_7836H_, OF=__。 8. 要测试AX的第五位是否为1,使用指令__;若要将AL的第五位置为1,使用指令____。(说明:最低位为第0位。) 9. 已知:寄存器AX=9A5EH,指令: NEG
AX执行后,
OF=_0_,SF=_0 。 10. 已知:寄存器EAX=65536,EBX=32768,指令:DIV
EBX执行后,
EAX=2。则指令:DIV
EBX执行前EDX的值应为 _,指令:DIV
EBX执行后EDX=_______。 11. 已知:寄存器AL=-1,指令:MOVSX
BX,AL执行后,BX= ________H;指令:MOVZX
CX,AL执行后,CX= ________H。 12. 顺序执行指令序列“XOR EAX,EAX ,DEC EAX ,ADC EAX,0”后,CF=___,ZF=____。 13. 顺序执行指令序列“XOR EAX,EAX ,SUB EAX,1 ,ADC EAX,0”后,CF=___,ZF=____。 14. 已知:寄存器AL=10,BL=-10,指令:MUL
BL执行后,
AX=________H;而若将指令改为:IMUL
BL 则执行后AX=________H; 15. 若要将AX的第五位和第九位置为0,使用指令____________________;若要将AX的第五位和第九位置反,使用指令____________________。(说明:最低位为第0位。) 五.简答题 1. 乘除法运算针对无符号数和有符号数,有两种不同的指令。只有一种指令的加减法如何区别无符号数和有符号数运算? 加减法不区别无符号数和有符号数,但根据运算结果分别设置标志寄存器的CF和OF标志,可利用CF和OF进行区别。 2. 逻辑与运算为什么也称为逻辑乘? 逻辑与运算规则类似二进制的乘法,所以称其为逻辑乘。 3. 简述逻辑运算指令怎么实现复位、置位和求反功能?
4. 在处理一维数组时,通常可以采用哪些寻址方式?各自的特点是什么?
5. 通常在什么情况下需要使用MOVSX、MOVZX指令? 对无符号数,在前面加零实现零位扩展。对应指令MOVZX;对有符号数进行符号扩展,即用一个操作数的符号位(最高位)形成另一个操作数,对应指令MOVSX 6. 通常在什么情况下需要使用PTR类型操作符?举例说明。 如在指令“MOV EAX,DWORD PTR ARRAY”,EAX是双字,变量ARRAY被定义为字量,两者类型不同,MOV指令不允许不同类型的数据传送,利用PTR改变ARRAY的类型,将其传送给EAX. 7.
ESP是通用寄存器,是否可以随意的修改ESP的值? 不可以,堆栈段的范围由堆栈执政寄存器ESP的初值确定,这个位置就是堆栈的底部(不再变化),因此不能随意改变ESP的值。 8. 大小写字母转换的规律是什么?给出转换的公式。 大小写字母转换利用它们的ASCII码相差20H。SUB BL 20H:实现小写字母转换为大写;ADD BL 20H:实现大写字母转换为小写 9. ESP是通用寄存器,是否可以随意的修改ESP的值? 第5章 汇编语言程序设计 一.选择 1. 循环指令LOOP终止循环的条件是(
B. ECX=0,且ZF=0
ECX≠0,且ZF=0
D. ECX≠0,或ZF=1 A.ECX=0,或ZF=1
B. ECX=0,且ZF=0 C.ECX≠0,且ZF=0
D. ECX≠0,2. 循环指令LOOPNZ终止循环的条件是(
)。 或ZF=1 3. LOOP指令执行时,隐含计数器是(
D.EDI A. JA
D. JGE A. JA
D. CF 4. 当A>B时转移的条件转移指令为(A、B为无符号数)(
)。 5. 当A>=B时转移的条件转移指令为(A、B为 有符号数)(
)。 6. 条件转移指令JC Label的测试条件是(
)。 = 1 7. 若主程序通过堆栈向子程序传递了3个参数,子程序返回主程序时,在子程序中清除堆栈中3个参数正确的RET指令是(
3*4 8. 主程序通过堆栈向子程序传递了3个参数,子程序调用结束后,在主程序中清除堆栈中3个参数正确的指令是(
ESP, 3*2 B. ADD
EBP, 3*4 9. 条件转移指令JZ
Label的测试条件是(
= 1 10. 利用堆栈传递子程序参数的方法是固定的,若主程序通过堆栈向子程序传递了3个参数,则在子程序中, 主程序中最后一个被压入栈中的参数可以用(
)的形式来访问。
C. [EBP+4]
[EBP+8] 11. 通过堆栈传递参数,在子程序中使用EBP间址取得参数的原因是(
)。 A. EBP没有被占用B. EBP间址速度较快C. EBP间址默认的段是堆栈段D. EBP是基址指针 12. 通过寄存器传递参数比通过堆栈传递参数的优点是(
A. 能传递更多得参数 B. 存取效率高 C. 能确保正确调用
D. 没有副作
联系客服:cand57il.com几道微机原理题1.将汇编语言程序翻译成目标程序的过程成为( )过程,产生的目标文件扩展名为( )2.设计输入输出接口电路
几道微机原理题1.将汇编语言程序翻译成目标程序的过程成为( )过程,产生的目标文件扩展名为( )2.设计输入输出接口电路时,输入接口电路的关键器件是( );输出接口电路的关键器 件是( )3.在与I/O设备的接口电路中,解决与数据总线隔离问题的常用器件是哪个? A译码器 B触发器 C三态缓冲器 D锁存器4.译码器,多路转换器,采样保持器,双向三态缓冲器其中哪个能够提高总线驱动能力?5.用户在编写中断服务程序时,应在中断入口矢量地址所对应的单元中存放一条无条件 转移地址以防止中断服务程序容纳不下.这句话是对的还是错的?6.AGND代表模拟信号和基准电源的参考地,称为模拟地.这句话是对的还是错的?希望能尽量详细些0.0!
编译;.HEX74LS244;74LS273C缓冲器对对
我有更好的回答:
剩余:2000字
与《几道微机原理题1.将汇编语言程序翻译成目标程序的过程成为( )过程,产生的目标文件扩展名为( )2.设计输入输出接口电路》相关的作业问题
1.你确定答案么有写错么?MUL BL和JMP BX两条指令应该是寄存器寻址,而IN AL,DX是间接寻址.2.MOV AL,8+[BX+DI],这个指令格式不对呀,应该是MOV AL,8[BX+DI],而操作数的物理地址PA=DS*16+8+(BX)+(DI)3.是要算偏移量吧,偏移量=307EH-304CH-2=3
当前CS值为1000H,IP的值为2300H,当前指令为三字节指令,下一条指令的取指(令)地址(物理地址)为12303H下一条指令的取指地址和当前指令为三字节指令有关,如果题目改为:当前CS值为1000H,IP的值为2300H,当前指令为一字节指令,下一条指令的取指(令)地址(物理地址)为12301H
简单的部分我就不答了.我提醒一下吧:第1题:没什么难度的.第2题:题中的IF应该是ZF才对.题目也有误的,要相信自己.另外,8位相加减更容易啊,方法与16位一样.第3题:地址并没有超.IP=FFOOH是一个补码,也就是说IP是一个负数.指针要在FFFF0H的基础上回减,所以不会超.其它就不用说了,相信你自己能做了.
1、3、4正确2、5错误ADC是带进位的加法,ADC d,s 是做d+s+CF运算,CF为标志寄存器中的进/借位位,ADC AX,CF的原意是想做AX+CF运算,需要改成 ADC AX,0 就正确了MOV是通用数据传送指令,格式为:MOV d,s 两个操作数的格式要求如下:(1)数据匹配,是指两个操作数要是8位都是8位
晕,寄存器寻址不要计算物理地址,寄存器名就是地址
3.、薄利多销:需求富有弹性的商品价格下降,总收益增加. 谷贱伤农:在丰收的情况下,粮食下跌,农民的收入减少.农产品属于生活必需品,需求缺乏弹性,丰收造成粮价下降,不会使需求量同比例增加,使总收益减少,农民受损失.
+0.1001的原码补码反码都是0.1的原码为1.1001,反码为1.0110,补码为1.0111
1、社会必要劳动时间是随着科学技术的发展而逐渐缩短的,就是指的制造这件商品所需要的社会必要劳动时间,例如,一辆汽车你制造下来用了10天,那么这10天算是社会必要劳动时间吗?如果其它制造厂商制造这辆汽车都需要10天的话,那么10天就是制造这辆汽车所花费的社会必要劳动时间.那么为什么说社会必要劳动时间决定商品价值量呢?因为
取两球的话只有三种可能性:两红、两黄、一红一黄,假设前三个人把这三种不同的组合都取了,最后一个人取到这三种里面的任意一种,肯定跟前三个人有重复的.
我可以帮你做,不过要收点小费了
一,写出相应的指令:(1)屏蔽BL寄存器的高4位:AND BL,0FH(2)将CH寄存器的低4位取反,其他位不变:XOR CH,0FH 二,某机器中有32KB的ROM,其末地址为90FFFH,则其首地址为__98FFEH_.三,设某微机系统的存储总容量为32KB,若采用单片容量为16K*1的SRAM芯片,则组成该存储器
CS:2000H MOV AX,H MOV CX,200CH2006H PUSH CX ;把200C压栈2007H CALL 4000H ;把200A压栈,再转到4000200AH ADD AX,BX200CH ADD AX,DX ;AX=401C200EH HLT… … … … CS:4000H M
我认为1.汇编语言服务于微机原理,而微机原理不只是汇编语言。除了汇编语言还有与计算机接口的知识。2.微机原理中的语句。大多就是汇编语言这书中所讲的语句。但是有些他不用到的就没讲。也就是说,微机原理中的语句不全。3、正应为微机原理所用的汇编语句不全,所以才另外出汇编语言的书。以上为本人愚见
《现代微机原理与接口技术》课程大纲课程编号: 课程名称: 现代微机原理与接口技术英文名称: Interface Technology of Computer预修课程:《汇编语言》、《微机原理》学 时:48(理论)学 分: 3考核方式:考查课程性质 专业必修课一、 课程任务和目的《现代微机原理与接口技术》
1.物体第一次经过物镜成( 倒立 )、( 放大 )的( 实 )像,这个像再经( 目 )镜成( 正立 )、( 放大 )的( 虚 )像,显微镜的放大倍数高是因为它对物体进行了( 两次 )次放大.2.望远镜大致可分为( 折射式 )式望远镜和( 反射 )式望远镜,前者的物镜一般是( 凸透镜 )镜,后者的物镜一般是(  凹面镜 
5×4×3×2×1=120
题呢?难道让我编题么? 再问: 帮忙算一下 再答: 12.5乘6.4乘2.5 =(12.5乘0.8)乘(8乘2.5) =100乘20= 2000 (1/15加2/17)×15×17 =1/15×15×17+2/17×17×15 =17+2×15=17+30 =47 3.6×8/7-0.8×1/8+3.3÷0.3 =18微机原理编程题集合_百度文库
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
微机原理编程题集合
江苏大学交通工程学子|
总评分4.6|
用知识赚钱
&&江苏大学微机原理编程题库选集
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩9页未读,
定制HR最喜欢的简历
你可能喜欢已解决问题
求微机原理算法?
求微机原理算法?
浏览次数:152
用手机阿里扫一扫
最满意答案
算术指令包括加、减、乘、除指令,它包括对二进制数进行的算术运算的指令,以及对十进制数(用BCD码表示)运算进行调整的指令。执行算术指令都会影响条件标志位,条件标志位包括CF、PF、AF、ZF、SF和OF,它们标志算术运算结果的特征。 &⑴&加法指令&           ⑵&减法指令ADD& 加法&             SUB& 减法ADC& 带进位加&           DEC& 减1INC& 加1&             &NEG& 求补CMP& 比较⑶&乘法指令&           ⑷&除法指令MUL& 无符号数乘法&         DIV& 无符号数除法IMUL 带符号数乘法         IDIV 带符号数除法⑸&符号扩展指令         &⑹&十进制调整指令CBW &字节转换为字&         DAA 加法的十进制调整CWD& 字转换为双字         &DAS& 减法的十进制调整AAA& 加法的ASCII调整AAS& 减法的ASCII调整      AAM& 乘法的ASCII调整AAD& 除法的ASCII调整  1&加法指令  ADD&dst,src&加法指令(addition)执行操作:&(dst)&&&(src)+(dst)ADC&dst,src&带进位加指令(add&with&carry)执行操作:&(dst)&&&(src)+(dst)+CFINC&opr&加1指令(increment)执行操作:&(opr)&&&(opr)+1ADD和ADC指令是双操作数指令,它们的两个操作数不能同时为存储器寻址方式,也就是说,除源操作数为立即数的情况外,源和目的操作数必须有一个是寄存器寻址方式。INC指令是单操作数指令,它可以使用除立即数方式外的任何寻址方式。ADD和ADC指令影响条件标志位(也称条件码),INC指令影响除CF外的其它条件码。条件码中最主要的是SF、ZF、CF和OF,加法运算对这四个条件码的设置方法如下:SF=1&加法结果为负数(符号位为1)SF=0&加法结果为正数(符号位为0)ZF=1&加法结果为零ZF=0&加法结果不为零CF=1&最高有效位向高位有进位CF=0&最高有效位向高位无进位OF=1&两个同符号数相加(正数+正数,或负数加负数),结果符号与其相反OF=0&不同符号数相加时,或同符号数相加,结果符号与其相同计算机在执行运算时,并不区别操作数是带符号数还是无符号数,一律按上述规则设置条件码,因此,程序员要清楚当时处理的是什么类型的数据。例如,当加&法运算结果的最高有效位为1时,机器将SF置1。如果参加运算的是两个带符号数,那么和的最高有效位是符号位,SF置1说明结果是一个负数。如果参加运算&的是两个无符号数,那么和的最高有效位也是数值位,此时SF置0或置1都失去了表示正负数的意义。对带符号数和无符号数,它们表示结果溢出的条件标志位也是不同的。上述OF位的设置条件显然只符合带符号数的溢出情况,OF=1表示运算结果是错误&的。而无符号数溢出(运算结果超出了有限位的表示范围)时,表现为最高有效位产生进位,因此,CF=1是无符号数溢出的标志。另外,在双字长数运算时,低&位字相加设置的CF,说明低位字向高位字有无进位的情况。 &例&MOV &BX,9B8CH& ;&(BX)=9B8CHADD &BX,6478H& ;&now&(BX)=0000H9B8A     00&1010+&6476&   &+&11&0110-----------& --------------------------1&&0000&  &1&&00&0000条件码设置:&SF=0& 最高有效位(D15)为0ZF=1& 结果为0CF=1 &最高有效位向高位有进位OF=0& 不同符号数相加,不产生溢出  例&编写执行双精度数(DX,CX)和(BX,AX)相加的指令序列,DX是目的操作数的高位字,BX是源操作数的高位字。指令执行前:(DX,CX)=&A248&2AC0H,(BX,AX)=&088A&E25BH。指令序列:& ADD& CX,&AX& ;(CX)=&0D1BHADC& DX,&BX& ;&now,(DX)=0AAD3H执行ADD指令:2AC0&    00&0000+&E25B&   +&01&1011---------&  ------------------------1&&0D1B&  1&&01&1011条件码设置:&SF=0& 最高有效位(D15)为0,无符号位意义F=0  结果不为0CF=1& 最高有效位向高位有进位OF=0& 加数最高位分别为0、1,溢出位置0,OF对低位字无溢出意义执行ADC指令:A248&    00&1000088A&    00&1011+& &1&   &+&        &1&CF----------& ----------------------------AAD3&    01&0011条件码设置:&SF=1& 最高有效位(D31)为1,对带符号数运算表示结果为负ZF=0& 结果不为0CF=0& 最高有效位向高位无进位OF=0& 结果符号与操作数相同,未产生溢出  2&减法指令  SUB&dst,src&减法指令(subtract)执行操作:&(dst)&&&(dst)-(src)SBB&dst,src&带借位减法指令(subtract&with&borrow)执行操作:&(dst)&&&(dst)-(src)-CFDEC&opr&减1指令(decrement)执行操作:&(opr)&&&(opr)-1CMP&opr1,opr2&比较指令(compare)执行操作:&(opr1)-(opr2),根据相减结果设置条件码,但不回送结果以上指令除DEC指令不影响CF外,其他都影响条件码。与加法类似,SF和ZF分别表示减法结果的符号以及为零的情况;CF表明无符号数相减结果溢出与否;OF表明带符号数相减结果溢出与否。但在对CF和OF位的设置方法上减法和加法有所不同,下面对此做进一步说明:CF=1&  二进制减法运算中最高有效位向高位有借位(被减数<减数,不够减的情况)CF=0&  二进制减法运算中最高有效位向高位无借位(被减数&减数,够减的情况)OF=1&  两数符号相反(正数-负数,或负数-正数),而结果符号与减数相同OF=0&  同符号数相减时,或不同符号数相减,其结果符号与减数不同NEG&opr&求补指令(negate)执行操作:&(opr)&&&-(opr),求补操作即把操作数变为与其符号相反的数:。机器在执行求补指令时,把操作数各位求反后末位加1,因此执行的操作也可表示为:(opr)&&&0FFFFH-(opr)+1NEG指令的条件码设置方法为:CF=1& 不为0的操作数求补时CF=0& 为0的操作数求补时OF=1& 当求补运算的操作数为-128(字节)或-32768(字)时OF=0& 当求补运算的操作数不为-128(字节)或-32768(字)时 &例&字长为8位的两数相减,其可表示数的范围为:带符号数-128~127(80H~7FH),无符号数0~255(0~FFH)。运算结果超出可表示数范围即为溢出,说明结果错误。①&43H-16H=2DH&   &&  条件码设置:CF=0-&&  &+&&        OF=0--------------&   --------------&   1&&说明:机器作减法运算时,先将减数求补,然后转化为加法运算,所以实际上机器设置CF的方法是:最高有效位不产生进位时,CF=1;最高有效位产生进位时,CF=0。这和做减法时有借位CF=1,无借位CF=0是一致的。本例参加运算的数无论是看作带符号数还是无符号数,运算结果均有效。②&0C8H-66H=62H&   &&  条件码设置:CF=0-&& & +&&        OF=1--------------&   ------------&   1&&说明:如果是无符号数的运算,被减数够减无借位,所以CF置0,表明结果有效。如果操作数是带符号数,且被减数与减数符号相反,而结果符号与减数符号相同,所以OF置1,表明结果无效。③&54H-76H=0DEH& & &&  &条件码设置:CF=1-&&  +&&        &OF=0-------------&   -------------&    &说明:如果是无符号数的运算,本例中被减数<减数,减运算向高位有借位(或加运算无进位),则CF置0,表明结果无效。如果是带符号数的运算,同符号数相减,OF置0,结果有效。④&4BH-0B6H=0DEH& &  &  &条件码设置:CF=1-&& & +&&         F=1---------------&  &-----------&     说明:如果是无符号数的运算,本例中被减数<减数,减运算向高位有借位(或加运算无进位),则CF置0,表明结果无效。如果是带符号数的运算,不同符号数相减,且结果符号与减数符号相同,OF置1,结果也是无效的。  例&分析下列程序的执行情况:DATA_A&  DD&  62562FAHDATA_B&  DD&  412963BHRESULT&  DD&  ?&&   &&  &MOV&   &AX,&WORD&PTR&DATA_A&  ;&(AX)=62FAHSUB    AX,&WORD&PTR&DATA_B&  ;&sub&963BH&from&AXMOV    WORD&PTR&RESULT,&AX&  ;&save&the&resultMOV    AX,&WORD&PTR&DATA_A+2& ;&(AX)=0625HSBB    AX,&WORD&PTR&DATA_B+2& ;&sub&0412H&with&borrowMOV    WORD&PTR&RESULT,&AX&  ;&save&the&result答:SUB指令执行后,(AX)=&62FAH-963BH=0CCBFH,CF=1(有借位)。执行SBB指令后,(AX)=&625H-412H-1=212H,CF=0,OF=0,因此,保存于RESULT的结果数据为0212CCBFH。 &3&乘法指令  MUL& src& 无符号数乘法(unsigned&multiple)IMUL src &带符号数乘法(signed&multiple)字节操作:&(AX)&&&(AL)&(src)字操作:& (DX,&AX)&&&(AX)&(src)MUL和IMUL指令的区别仅在于操作数是无符号数还是带符号数,它们的共同点是,指令中只给出源操作数src,它可以使用除立即数方式以外的任一种&寻址方式。目的操作数是隐含的,它只能是累加器(字运算为AX,字节运算为AL)。隐含的乘积寄存器是AX或DX(高位)和AX(低位)。乘法指令只影响CF和OF,其它条件码位无定义。无定义是指指令执行后,条件码位的状态不确定,因此它们是无用的。MUL指令的条件码设置为:CF&OF=&0&0&乘积的高一半为0(字节操作的(AH)或字操作的(DX))CF&OF=&1&1&乘积的高一半不为0这样的条件码设置可以指出字节相乘的结果是8位(CF=0)还是16位(CF=1),字相乘的结果是16位(CF=0)还是32位(CF=1)。IMUL指令的条件码设置为:CF&OF=&0&0&乘积的高一半为低一半的符号扩展CF&OF=&1&1&其他情况符号扩展是指做字节乘法时,乘积低8位的最高位为0,高8位也扩展为0,或者低8位的最高位为1,高8位也扩展为1的情况。对两个字相乘,符号扩展是指乘积的低16位的最高位为0,高16位也扩展为0,或者低16位的最高位为1,高16位也扩展为1的情况。 &例&无符号数乘法 ;&from&the&data&segmentDATA1& DB& 25HDATA2& DB& 65HRESULT DW&?;&from&the&code&segmentMOV&  AL,DATA1MOV&  BL,DATA2MUL&  BL&       ;&register&addressing&modeMOV&  RESULT,AXorMOV&  AL,DATA1MUL&  DATA2&     &;&direct&addressing&modeMOV&  RESULT,AXorMOV&  AL,DATA1MOV&  SI,OFFSET&DATA2MUL&  BYTE&PTR&[SI]& &;register&indirect&addressing&modeMOV&  RESULT,AX本例25H&65H=0E99H,高16位不为0,所以CF=1,OF=1。  例 DATA3& DW& 2378HDATA4& DW& 2F79HRESULT1&DW& 2&DUP(?)&&  &&MOV&  AX,&DATA3&  ;&load&first&operand&into&AXIMUL& &DATA4&    ;&multiply&it&by&the&second&operandMOV&  RESULT1,&AX& ;&store&the&lower&word&resultMOV&  RESULT1+2,&DX&;&store&the&higher&word&result本例H=0693&CBB8H,即(DX)=0693H,(AX)=0CBB8H。因为高16位不是低16位的符号扩展,所以条件码设置为CF=1,OF=1。
答案创立者
以企业身份回答&
正在进行的活动
生意经不允许发广告,违者直接删除
复制问题或回答,一经发现,拉黑7天
快速解决你的电商难题
店铺优化排查提升2倍流量
擅长&nbsp 店铺优化
您可能有同感的问题
扫一扫用手机阿里看生意经
问题排行榜
当前问题的答案已经被保护,只有知县(三级)以上的用户可以编辑!写下您的建议,管理员会及时与您联络!
server is ok}

我要回帖

更多关于 微机原理及应用 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信