微机原理、汇编语言与接口技术 第三章 习题答案 人民邮电出版社

合集下载

微机原理与接口技术课后习题与参考答案

微机原理与接口技术课后习题与参考答案

第一章课后习题1.1 把下列十进制数转换成二进制数、八进制数、十六进制数。

① 16.25 ② 35.75 ③ 123.875 ④ 97/1281.2 把下列二进制数转换成十进制数。

① 10101.01 ② 11001.0011 ③ 111.01 ④ 1010.11.3 把下列八进制数转换成十进制数和二进制数。

① 756.07 ② 63.73 ③ 35.6 ④ 323.451.4 把下列十六进制数转换成十进制数。

① A7.8 ② 9AD.BD ③ B7C.8D ④ 1EC1.5 求下列带符号十进制数的8位补码。

① +127 ② -1 ③ -0 ④ -1281.6 求下列带符号十进制数的16位补码。

① +355 ② -11.7 计算机分那几类?各有什么特点?1.8 简述微处理器、微计算机及微计算机系统三个术语的内涵。

1.9 80X86微处理器有几代?各代的名称是什么?1.10 你知道现在的微型机可以配备哪些外部设备?1.11 微型机的运算速度与CPU的工作频率有关吗?1.12 字长与计算机的什么性能有关?习题一参考答案1.1 ① 16.25D=10000.01B=20.2Q=10.4H② 35.75D=100011.11B=43.6Q=23.CH③ 123.875D=1111011.111B=173.7Q=7B.EH④ 97/128D=64/123+32/128+1/128=0.1100001B=0.604Q=0.C2H1.2 ① 10101.01B=21.25D ② 11001.0011B=25.1875D③ 111.01B=7.25D ④ 1010.1B=10.5D1.3 ① 756.07Q=111101110.000111B=494.109D ②63.73Q=110011.111011B=51.922D③ 35.6Q=11101.110B=29.75D ④323.45Q=11010011.100101B=211.578D1.4 ① A7.8H=167.5D ② 9AD.BDH=2477.738D③ B7C.8D=2940.551D ④ 1ECH=492D1.5 ① [+127]补=01111111 ② [-1] 补= 11111111③ [-0] 补=00000000 ④[-128] 补=100000001.6 ① [+355] 补= 0000000101100011 ② [-1] 补= 1111 1111 1111 1111 1.7 答:传统上分为三类:大型主机、小型机、微型机。

微机原理和接口技术课后习题和参考答案解析(汇编)

微机原理和接口技术课后习题和参考答案解析(汇编)

第一章课后习题1.1 把下列十进制数转换成二进制数、八进制数、十六进制数。

① 16.25 ② 35.75 ③ 123.875 ④ 97/1281.2 把下列二进制数转换成十进制数。

① 10101.01 ② 11001.0011 ③ 111.01 ④ 1010.11.3 把下列八进制数转换成十进制数和二进制数。

① 756.07 ② 63.73 ③ 35.6 ④ 323.451.4 把下列十六进制数转换成十进制数。

① A7.8 ② 9AD.BD ③ B7C.8D ④ 1EC1.5 求下列带符号十进制数的8位补码。

① +127 ② -1 ③ -0 ④ -1281.6 求下列带符号十进制数的16位补码。

① +355 ② -11.7 计算机分那几类?各有什么特点?1.8 简述微处理器、微计算机及微计算机系统三个术语的内涵。

1.9 80X86微处理器有几代?各代的名称是什么?1.10 你知道现在的微型机可以配备哪些外部设备?1.11 微型机的运算速度与CPU的工作频率有关吗?1.12 字长与计算机的什么性能有关?习题一参考答案1.1 ① 16.25D=10000.01B=20.2Q=10.4H② 35.75D=100011.11B=43.6Q=23.CH③ 123.875D=1111011.111B=173.7Q=7B.EH④ 97/128D=64/123+32/128+1/128=0.1100001B=0.604Q=0.C2H1.2 ① 10101.01B=21.25D ② 11001.0011B=25.1875D③ 111.01B=7.25D ④ 1010.1B=10.5D1.3 ① 756.07Q=111101110.000111B=494.109D ②63.73Q=110011.111011B=51.922D③ 35.6Q=11101.110B=29.75D ④323.45Q=11010011.100101B=211.578D1.4 ① A7.8H=167.5D ② 9AD.BDH=2477.738D③ B7C.8D=2940.551D ④ 1ECH=492D1.5 ① [+127]补=01111111 ② [-1]补= 11111111③ [-0]补=00000000 ④[-128]补=100000001.6 ① [+355]补= 0000000101100011 ② [-1]补= 1111 1111 1111 11111.7 答:传统上分为三类:大型主机、小型机、微型机。

《汇编语言与接口技术》习题解答(第三章)要点

《汇编语言与接口技术》习题解答(第三章)要点

《汇编语言与接口技术》习题解答(第三章)要点以下是为大家整理的《汇编语言与接口技术》习题解答(第三章)要点的相关范文,本文关键词为汇编语言与接口技术,习题,解答,第三章,要点,习题,3.10,您可以从右上方搜索框检索更多相关文章,如果您觉得有用,请继续关注我们并推荐给您的好友,您可以在综合文库中查看更多范文。

习题3.10问题:?画图说明下列语句分配的存储空间及初始化的数据值解答:(1)byte_varDb'Abc',10,10h,'eF',3Dup(-1,?,3Dup(4))‘A’‘b’‘c’1010h‘e’‘F’-1-444...41h42h43h0ah10h45h46hffh-04h04h04h(2)word_varDw10h,-5,3Dup(?)3个10h0FbhFFh------10h-5???3.16解:movah,1;只允许输入小写字母int21hsubal,20h;转换为大写字母movdl,almovah,2int21h;显示3.18解:movax,bufxcmpax,bufYjgedonemovax,bufYdone:movbufZ,ax3.19解:.modelsmall.stack.databufxdw-7signxdb?.code.startupcmpbufx,0;te stbufx,80h1next:done:3.20解:movdl,’2’movax,bufxcmpax,bufYjenext1decdlnext1:cmpax,bufZjenext2decdlnext2:movah,2int21h3.22编制程序完成12h、45h、0F3h、6Ah、20h、0Feh、90h、0c8h、57h和34h等10个字节数据之和,并将结果存入字节变量sum中(不考虑溢出和进位)。

;wjxt322.asm.modelsmall.stack.datab_datadb12h,45h,0f3h,6ah,20h,0feh,90h,0c8h,57h,34h;原始数据numequ10;数据个数sumdb?;预留结果单元.code.startupxorsi,si;位移量清零xoral,al;取第一个数movcx,num;累加次数again:addal,b_data[si];累加incsi;指向下一个数loopagain;如未完,继续累加movsum,al;完了,存结果.exit0end3.30解:lucaseprocpushbxmovbx,offsetstringcmpal,0jecase02jlnext;jnznextmovsignx,0jmpdonemovsignx,-1.exit0endcmpal,1jzcase1cmpal,2jzcase2jmpdonecase0:cmpbyteptr[bx],0jedonecmpbyteptr[bx],’A’next0:case1:next1:case 2:next20:next2:done:lucasejbnext0cmpbyteptr[bx],’Z’janext0addbyteptr[bx],20hincbxjmpcase0cmpbyteptr[bx],0jedonecmpbyteptr[bx],’a’jbnext1cmpbyteptr[bx],’z’jane xt1subbyteptr[bx],20hincbxjmpcase1cmpbyteptr[bx],0jedonecmpbyteptr[bx],’A’jbnext2cmpbyteptr[bx],’Z’jane xt20addbyteptr[bx],20hjmpnext2cmpbyteptr[bx],’a’jbnext2cmpbyteptr[bx],’z’janext2subbyteptr[bx],20hin cbxjmpcase2popbxretendp3习题3.1解答:参考教材(第60页)习题3.6问题:?给出你采用一个源程序格式书写的例题 3.1源程序解答:.modelsmall.stack.datastringdb’hello,Assembly!’,0dh,0ah,’$’.codestart:movax,@datamovds,axmovdx,offsetstringmovah,9int21hmovax,4c0 0hint21hendstart习题3.12解答:oRg伪指令习题3.13解答:段地址和偏移地址属性,类型属性习题3.26问题:?过程定义的一般格式是怎样的?子程序开始为什么常有push 指令、返回前为什么常有pop指令?下面完成16位无符号数累加的子程序有什么不妥吗?若有,请改正:解答:crazypRoc;crazypRocpushax;xorax,ax;xorax,axxordx,dx;xordx,dx again:addax,[bx];again:addax,[bx]adcdx,0;adcdx,0incbx;incbxincbx;incbx4loopagain;loopagainret;retenDpcrazy;crazyenDp字量求和子程序入口参数:bx=数据首址cx=数据个数出口参数:Ax=和的低字Dx=和的高字(进位部分)习题3.28问题:?请按如下说明编写子程序:;子程序功能:把用AscII码表示的两位十进制数转换为对应二进制数;入口参数:Dh=十位数的AscII码,DL=个位数的AscII码;出口参数:AL=对应的二进制数解答:asctobprocpushcx;先转换十位数anddh,0fhshldh,1;乘以10movch,dhshldh,1shldh,1adddh,ch;转换个位数anddl,0fh;十位数加个位数adddh,dl;设置出口参数moval,dhpopcxretasctobendp5以下是为大家整理的《汇编语言与接口技术》习题解答(第三章)要点(2)的相关范文,本文关键词为汇编语言与接口技术,习题,解答,第三章,要点,习题,3.10,您可以从右上方搜索框检索更多相关文章,如果您觉得有用,请继续关注我们并推荐给您的好友,您可以在综合文库中查看更多范文。

微机原理 汇编语言与接口技术 (周杰英 著) 人民邮电出版社

微机原理 汇编语言与接口技术 (周杰英 著) 人民邮电出版社

h 目的操作数
源操作数
k(1) MOV AX,100
寄存器寻址
立即数寻址
(2) MOV AX,[100]
寄存器寻址
直接寻址
(3) MOV DL,[BP+SI] 寄存器寻址
基址变址寻址
(4) MOV [BX],CX
寄存器间接寻址 寄存器寻址
(5) MOV DX,[SI]
寄存器寻址
寄存器间接寻址
(6) MOV 1234H[BX],DS 寄存器相对寻址 寄存器寻址
www.kh 课d后a答案w网.com
课后答案网
周期来完成 16 位数据的传送,而对于非规则字则用相邻两个总线周期来完成该字的存
储操作,先取其奇地址字节(即数据的低位字节),然后存取偶地址字节。在组成存储
系统 时, 总是偶 地址 单元的 数据 通过 AD0~AD7 传送 ,而 奇地址 单元 的数据 通 过 AD8~AD15 传送,即通过总线高字节传送。 BHE 信号和 A0 信号控制存储器读写见下表:
优点? 解:总线接口部分和执行部分是分开的,每当 EU 执行一条指令时,造成指令队列空出 2 个或空出一个指令字节时 ,BIU 马上从内存中取出下面一条或几条指令,以添满他 的指令队列。这样,一般情况下,CPU 在执行完一条指令后,便可马上执行下一条指 令,不像以往 8 位 CPU 那样,执行完一条指令后,需等待下一条指令。即 EU 从指令队 列中取指令、执行指令和 BIU 补充指令队列的工作是同时进行的。这样大大提高了 CPU 利用率,降低了系统都对存储器速度的要求。
课后答案网
www.kh 课d后a答案w网.com
第一章 绪论
习题与答案
m 1. 把下列二进制数转换成十进制数、十六进制数及 BCD 码形式。 o (1) 10110010B =

微机原理与接口技术答案(含详解)

微机原理与接口技术答案(含详解)

微机原理与接口技术习题课后习题参考答案(含部分详解)第一章(p20)1、参考答案:冯•诺伊曼计算机的设计思想(EDVAC方案:存储程序通用电子计算机方案):①计算机分为计算器、控制器、存储器、输入和输出装置五个部分;②计算机内采用二进制;③将程序存储在计算机内,简称“程序存储”。

其中第三点是冯•诺依曼计算机设计的精华,所以人们又把冯•诺依曼原理叫做程序存储原理,即程序由指令组成并和数据一起存放在存储器中,机器则按程序指定的逻辑顺序把指令从存储器中读出来并逐条执行,从而自动完成程序描述的处理工作。

冯•诺伊曼计算机主要以运算器和控制器为中心,结构框图如下图所示。

2、参考答案:微处理器就是中央处理器CPU,是计算机的核心,单独的CPU不能构成计算机系统;微型计算机由微处理器、主存储器、I/O接口(注意:不是I/O设备)组成;而微型计算机系统除了包括微型计算机外,还有系统软件(即操作系统)、应用软件、外存储器和I/O设备等。

微型计算机系统结构如下图所示。

3、答案略,见p6~74、答案略,见图2,或教材图1-35、答案略,见p12~136、参考答案:由于8086微处理器的地址总线的宽度为20位,所以它可寻址220=1M字节的存储空间;而PentiumII微处理器的地址总线的宽度为36位,所以它可寻址236=64G字节的存储空间。

7、参考答案:①PCI(Peripheral Component Interconnect:外围设备互联),是Intel公司1992年发布486微处理器时推出的32/64位标准总线,数据传输速率位132MB/s,适用于Pentium 微型计算机。

PCI总线是同步且独立于微处理器的具有即插即用(PNP:Plug and play,所谓即插即用,是指当板卡插入系统时,系统会自动对板卡所需资源进行分配,如基地址、中断号等,并自动寻找相应的驱动程序)的特性.PCI总线允许任何微处理器通过桥接口连接到PCI 总线上。

《汇编语言与接口技术》答案习题解答(第三章)

《汇编语言与接口技术》答案习题解答(第三章)

《汇编语言与接口技术》答案习题解答(第三章) -标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII3.16 解:mov ah,1 ;只允许输入小写字母int 21hsub al,20h ;转换为大写字母mov dl,almov ah,2int 21h ;显示3.18 解:mov ax, bufXcmp ax, bufYjge donemov ax, bufYdone: mov bufZ, ax3.19 解:.model small.stack.databufX dw -7signX db.code.startupcmp bufX,0 ;test bufX,80hjl next ;jnz nextmov signX,0jmp donenext: mov signX,-1done: .exit 0end3.20 解:mov dl,’2’mov ax,bufXcmp ax,bufYje next1dec dlnext1: cmp ax,bufZje next2dec dlnext2: mov ah,2int 21h3.22 编制程序完成12H、45H、0F3H、6AH、20H、0FEH、90H、0C8H、57H和34H等10个字节数据之和,并将结果存入字节变量SUM中(不考虑溢出和进位)。

;wjxt322.asm.model small.stack.datab_data db 12h,45h,0f3h,6ah,20h,0feh,90h,0c8h,57h,34h ;原始数据num equ 10 ;数据个数sum db ;预留结果单元.code.startupxor si, si ;位移量清零xor al, al ;取第一个数mov cx, num ;累加次数again: add al, b_data[si] ;累加inc si ;指向下一个数loop again ;如未完,继续累加mov sum, al ;完了,存结果.exit 0end3.30 解:lucase procpush bxmov bx,offset stringcmp al,0je case0cmp al,1jz case1cmp al,2jz case2jmp donecase0: cmp byte ptr [bx],0je donecmp byte ptr [bx],’A’jb next0cmp byte ptr [bx],’Z’ja next0add byte ptr [bx],20h next0: inc bxjmp case0case1: cmp byte ptr [bx],0je donecmp byte ptr [bx],’a’jb next1cmp byte ptr [bx],’z’ja next1sub byte ptr [bx],20h next1: inc bxjmp case1case2: cmp byte ptr [bx],0je donecmp byte ptr [bx],’A’jb next2cmp byte ptr [bx],’Z’ja next20add byte ptr [bx],20hjmp next2next20: cmp byte ptr [bx],’a’jb next2cmp byte ptr [bx],’z’ja next2sub byte ptr [bx],20h next2: inc bxjmp case2done: pop bxretlucase endp习题3.1解答:参考教材(第60页)习题3.6问题:给出你采用一个源程序格式书写的例题3.1源程序解答:.model small.stack.datastring db ’Hello, Assembly !’,0dh,0ah,’$’.codestart: mov ax,@datamov ds,axmov dx,offset stringmov ah,9int 21hmov ax,4c00hint 21hend start习题3.12解答:ORG伪指令习题3.13解答:段地址和偏移地址属性,类型属性习题3.26问题:过程定义的一般格式是怎样的?子程序开始为什么常有PUSH指令、返回前为什么常有POP指令?下面完成16位无符号数累加的子程序有什么不妥吗?若有,请改正:解答:crazy PROC ;crazy PROCpush ax ;xor ax,ax ;xor ax,axxor dx,dx ;xor dx,dxagain: add ax,[bx] ;again: add ax,[bx]adc dx,0 ;adc dx,0inc bx ;inc bxinc bx ;inc bxloop again ;loop againret ;retENDP crazy ; crazy ENDP字量求和子程序入口参数:BX=数据首址CX=数据个数出口参数:AX=和的低字DX=和的高字(进位部分)习题3.28问题:请按如下说明编写子程序:;子程序功能:把用ASCII码表示的两位十进制数转换为对应二进制数;入口参数:DH=十位数的ASCII码,DL=个位数的ASCII码;出口参数:AL=对应的二进制数解答:asctob procpush cx;先转换十位数and dh,0fhshl dh,1 ;乘以10mov ch,dhshl dh,1shl dh,1add dh,ch;转换个位数and dl,0fh;十位数加个位数add dh,dl;设置出口参数mov al,dhpop cxretasctob endp习题3.34-1问题:编写一个计算字节校验和的子程序。

16、32位微机原理、汇编语言和接口技术教程课后习题答案解析

16、32位微机原理、汇编语言和接口技术教程课后习题答案解析

《16/32 位微机原理、汇编语言及接口技术教程》部分习题参考解答第1 章微型计算机系统概述〔习题1.2 〕什么是通用微处理器、单片机(微控制器)、芯片、嵌入式系统?〔解答〕通用微处理器:适合较广的应用领域的微处理器,例如装在机、笔记本电脑、工作站、服务器上的微处理器。

单片机:是指通常用于控制领域的微处理器芯片,其内部除外还集成了计算机的其他一些主要部件,只需配上少量的外部电路和设备,就可以构成具体的应用系统。

芯片:称数字信号处理器,也是一种微控制器,其更适合处理高速的数字信号,内部集成有高速乘法器,能够进行快速乘法和加法运算。

嵌入式系统:利用微控制器、数字信号处理器或通用微处理器,结合具体应用构成的控制系统,其典型的特点是把计算机直接嵌入到应用系统之中。

〔习题1.5 〕说明微型计算机系统的硬件组成及各部分作用。

〔解答〕:也称处理器,是微机的核心。

它采用大规模集成电路芯片,芯片内集成了控制器、运算器和若干高速存储单元(即寄存器)处理器及其支持电路构成了微机系统的控制中心,对系统的各个部件进行统一的协调和控制。

存储器:存储器是存放程序和数据的部件。

外部设备:外部设备是指可与微机进行交互的输入()设备和输出()设备,也称设备。

设备通过接口与主机连接。

总线:互连各个部件的共用通道,主要含数据总线、地址总线和控制总线信号。

习题1.6 〕什么是总线?微机总线通常有哪3 组信号?各组信号的作用是什么?〔解答〕总线:传递信息的共用通道,物理上是一组公用导线。

3 组信号线:数据总线、地址总线和控制总线。

(1)地址总线:传输将要访问的主存单元或端口的地址信息。

(2)数据总线:传输读写操作的数据信息。

(3)控制总线:协调系统中各部件的操作。

习题1.7 〕简答如下概念:(1)计算机字长(2)取指-译码-执行周期(3)(4)中断(5)总线解答〕(1)处理器每个单位时间可以处理的二进制数据位数称计算机字长。

(2)指令的处理过程,即指处理器从主存储器读取指令(简称取指),翻译指令代码的功能(简称译码),然后执行指令所规定的操作(简称执行)的过程。

第三章微机原理课后习题参考答案

第三章微机原理课后习题参考答案

第三章微机原理课后习题参考答案————————————————————————————————作者:————————————————————————————————日期:第三章微机原理课后习题参考答案1. 指出下列指令的错误原因。

(1) AND AX, DL ;类型不匹配(2) ADD CS, DX ;CS不能作为目的操作数(3) MOV AX, IP ;IP不能作为指令的操作数(4) MOV [BP][SI], [SI] ;两个操作数不能同时为内存操作数(5) SUB [BP][SI], ES:DX ;段超越前缀只能用在内存操作数之前(6) XCHG AL, [SI][DI] ;没有[SI][DI]这种操作数形式(7) JGE AX ;条件转移指令的操作数只能是标号(8) PUSH DL ;对堆栈不能进行字节操作2. 用一条指令将BX清0。

(请给出3种方法)方法1:MOV BX, 0方法2:SUB BX, BX方法3:AND BX, 0 ;将BX和0做与,可以将BX清零方法4:XOR BX, BX3. 写出实现下列功能的指令序列。

(1) 判断AX的值,若AX等于0,则转到标号LABEL处。

(请写出3种方法)方法1:CMP AX, 0JZ LABEL ; 如果ZF = 0,说明AX为0,因为CMP指令是做减法,但是不写回结果,因此指令执行后AX内容不会受到破坏方法2:TEST AX, 0FFFF HJZ LABEL ; 如果ZF = 0,说明AX为0方法3:AND AX, 0FFFF HJZ LABEL(2) 将AL的高4位与低4位分别放入AH与AL的低4位,并将AH与AL的高4位清0。

MOV AH, ALAND AL, 0FH ; AL高4位通过与清零,而低4位保持不变MOV CL, 4SHR AH, CL ; 这两条指令通过逻辑右移将AH的高4位清零,因为SHR在右移后,高位补零(3) 若AX和BX中的数恰好1个是奇数、1个是偶数,则将奇数放入AX,偶数放入BX;否则,AX和BX不变。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第3章80x86指令系统
习题与参考答案
1、指出下列指令中操作数的寻址方式(8086系统)。

(1) MOV AX,100 (2) MOV AX,[100]
(3) MOV DL,[BP+SI] (4) MOV [BX],CX
(5) MOV DX,[SI] (6) MOV 1234H[BX],DS
(7) MOV [DI+5678H],AL (8) MOV 12[BP][DI],BH
(9) POP CX (10)MOV AX,[BX+SI+10]
解:
2、指出下列指令中操作数的寻址方式(80386系统)。

(1) MOV [EBX+12H],AX (2) MOV [EBP+EDI*2],EBX
(3) MOV [EBX*4],BX (4) MOV EDX,[EAX+ESI*8-12H] 解:
3、指出以下指令中,哪些指令是非法的,并说明为什么(8086系统)。

(1) PUSH 1234H (2) MOV CS,AX
(3) IN AX, 300 (4) MOV AX,[DX+12]
(5) MOV BX,[BX] (6) MOV DS,1000H
(7) XCHG AL,AL (8) MOV AL,100H
(9) MOV DX,AL (10)LEA BL,[BX+5]
(11)LEA DX,BX (12)MOV [1000H],12H
(13)ADD AX,DS (14)SUB [0100H],BYTE PTR [0001] (15)SHL BL,2 (16)SHR CL,CL
(17)MUL AL,BL (18)INT 400
解:(1)非法,8086系统不允许PUSH指令的操作数为立即数;
(2)非法,MOV指令中CS不能作为目的操作数;
(3)非法,端口号大于0FFH;
(4)非法,DX不能出现在中括号[]内;
(5)合法;
(6)非法,不能把立即数赋给段寄存器;
(7)合法;
(8)非法,源操作数大于0FFH,不能赋给8位寄存器AL;
(9)非法,源操作数是8位寄存器,目的操作数却是16位寄存器,不匹配;
(10)非法,LEA指令得到的是16位偏移量,但目的操作数是8位寄存器;
(11)非法,LEA指令的源操作数只能是存储器操作数;
(12)非法,指令存在歧义,无法确定传送的是字节还是字;
(13)非法,段寄存器不能参与算术运算;
(14)非法,源和目的寄存器不能同为存储器操作数;
(15)非法,在8086系统中,移位次数大于1时需要将移位次数存放到CL中;
(16)合法;
(17)非法,在8086系统中MUL指令没有双操作数的用法;
(18)非法,中断类型号大于0FFH。

4、指出以下指令中,哪些指令是非法的,并说明为什么(80386系统)。

(1) MOV AX,12[EBX][SI*16] (2) RCR EAX,10
(3) PUSH 5678H (4) POP 1000H
(5) MOV [EAX+EAX],EAX (6) MOV AL,[ESP+ESP*2]
(7) MOV BL,[AX+12] (8) IMUL AL,BL,12
解:(1)非法,比例因子只能是1、2、4、8,不能是16;
(2)合法;
(3)合法;
(4)非法,POP指令的目的操作数不能是立即数;
(5)合法;
(6)非法,ESP只能作为基址寄存器,不能作为变址寄存器;
(7)非法,在386系统中AX不能作为基址寄存器,也不能作为变址寄存器;
(8)合法。

5、假设(AX)=1234H,(BX)=5678H,(SP)=1000H,指出执行下面的程序段后,各相关寄存器
及堆栈段中的内容。

PUSH AX ;(AX)=?,(BX)=?,(SP)=?,栈顶字节[SP]=?,栈顶第二字节[SP+1]=?
PUSH BX ;(AX)=?,(BX)=?,(SP)=?,栈顶字节[SP]=?,栈顶第二字节[SP+1]=?
POP AX ;(AX)=?,(BX)=?,(SP)=?,栈顶字节[SP]=?,栈顶第二字节[SP+1]=?
解:(AX)=1234H,(BX)=5678H,(SP)=0FFEH,栈顶字节[SP]=34H,栈顶第二字节[SP+1]=12H (AX)=1234H,(BX)=5678H,(SP)=0FFCH,栈顶字节[SP]=78H,栈顶第二字节[SP+1]=56H
(AX)=5678H,(BX)=5678H,(SP)=0FFEH,栈顶字节[SP]=34H,栈顶第二字节[SP+1]=12H
6、假设A、B、C、D、X、Y为字节变量,AA、BB、YY为字变量,试利用算术运算指令编写
程序段,完成以下各算术运算题。

(1)计算YY←A+B*C,其中A、B、C都是无符号数;
(2)计算(AA+BB)/(C-D),商赋给X,余数赋给Y,其中AA、BB、C、D都是带符号数;
(3)计算YY←(A-B)*C,其中A、B、C都是未组合BCD码。

解:
(1)MOV AL,B
MUL C
ADD AL,A
ADC AH,0
MOV YY,AX
(2)MOV AX,AA
ADD AX,BB
MOV BL,C
SUB BL,D
IDIV BL
MOV X,AL
MOV Y,AH
(3)MOV AL,A
SUB AL,B
AAS
MUL C
AAM
MOV YY, AX
7、利用移位指令编写程序段,实现以下运算。

(1)计算AX←AX*10,其中AX为无符号数;
(2)32位带符号数存放在寄存器DX和AX中,其中DX存放高16位,AX存放低16位计算(DX,AX)←(DX,AX)*2。

(3)32位带符号数存放在寄存器DX和AX中,其中DX存放高16位,AX存放低16位计算(DX,AX)←(DX,AX)/2。

解:
(1)SHL AX,1
MOV BX,AX
SHL AX,1
SHL AX,1
ADD AX,BX
(2)SAL AX,1
RCL DX,1
(3)SAR DX,1
RCR AX,1
8、指出以下指令执行后,标志寄存器OF、SF、ZF、AF、PF、CF的状态。

(1)(AL)=0FFH,(BL)=20H,执行指令:ADD AL,BL
(2)(AL)=01H, (BL)=02H,执行指令:CMP AL,BL
(3)(AL)=0FFH,执行指令:INC AL
(4)(AL)=0,执行指令:DEC AL
(5)(AL)=0F0H,(BL)=04H,执行指令:IMUL BL
(6)(AX)=1F0H,(BL)=08H,执行指令:DIV BL
(7)(AL)=12H, (BL)=34H,执行指令:TEST AL,BL
(8)(AL)=98H,执行指令:SAL AL,1
解:
注:0表示结果为0,1表示结果为1,×表示结果不变,—表示结果不确定。

9、在8086系统下,编写实现如下功能的程序段:
(1)从地址为80H的端口中读入一个字节;
(2)如果该字节最高位为“1”,则将字节0FFH送到地址为81H的端口中,并退出程序;
(3)如果该字节最高位为“0”,则转向第(1)步,继续循环扫描。

解:参考程序段:
AGAIN: IN AL, 80H
TEST AL, 80H
JZ AGAIN
MOV AL, 0FFH
OUT 81H, AL
10、我们知道,MOV指令并不能直接修改CS、IP的值,但事实上,我们还可以通过其他方
法来达到修改CS、IP的目的。

试编写一个程序段,使该程序段运行后,(CS)=0100H,(IP)=0000H。

解:
方法一、利用段间返回指令RETF:
MOV AX,0100H
PUSH AX ;段基址入栈
MOV AX,0
PUSH AX ;偏移量入栈
RETF
方法二、利用JMP指令实现段间跳转,假设ADDR为双字变量:
MOV WORD PTR ADDR,0 ;WORD PTR ADDR←偏移量
MOV WORD PTR ADDR+2, 0100H ;WORD PTR ADDR+2←段基址JMP DWORD PTR ADDR。

相关文档
最新文档