微机原理及接口第四章习题答案

合集下载

微机原理及接口第四章习题答案

微机原理及接口第四章习题答案

“微机系统原理与接口技术”第四章习题解答1.判断以下说法能否正确,若有错,请说明原由并更正。

(1)伪指令在汇编过程中不会产生二进制代码。

(2)宏和过程的同样之处是都可用于简化源程序书写、精简目标代码。

(3)在计算机中,高级语言往常需要变换为汇编语言后才能履行。

(4)汇编语言程序上机一般包含编写、汇编、链接和调试几个步骤。

答:( 1)正确。

(2)错误。

宏不可以精简目标代码。

(3)错误。

高级语言程序经编译或解说后直接变换为目标代码。

(4)正确。

2.已知数据和符号定义A1DB?A2DB8K1EQU 100判断以下指令的正误,并说明错误指令的原由。

(1) MOVK1, AX(2) MOVA2, AH(3) MOVBX, K1MOV [BX] , DX(4) CMPA1, A2( 5) K1EQU 200答:( 1)错误。

K1 是符号常数,在此处相当于立刻数100 ,故不可以做目的操作数。

(2)正确。

(3)正确。

(4)错误。

A1、 A2 都是字节变量,相当于两个储存器单元,故不可以同时出现在一条指令中直接进行比较。

( 5)错误。

用EQU定义的符号不可以从头赋值,除非已用PURGE排除了原值。

3.若数据段中有定义NUM1EQU 23HNUM2DW0则指令MOV NUM2, NUM1 的源、目操作数的寻址方式以及指令履行后NUM2+ 1 单元的内容分别是什么?答:指令 MOV NUM2,NUM1的源操作数使用立刻数寻址,目的操作数使用直接寻址。

指令履行后NUM2+ 1 单元的内容是0。

4.设 DS=6000H, BX=8432H,SS=5000H,SP=3258H,内存 69632H~ 69635H 单元的内容挨次是 00H、11H、22H、33H。

4 字节指令 CALL DWORDPTR[BX+1200H] 自己位于 2000H:3250H处的双字单元中。

当8086 履行该指令后转移至子程序进口时,CS、IP 、 SS、SP 各寄存器以及栈顶 2 个字单元的内容分别是多少?答:履行结果为CS=3322H,IP=1100H ,SS=5000H,SP=3254H,栈顶的两个字即断点地点,为2000H: 3254H。

微机原理与接口技术 第四章 课后答案

微机原理与接口技术 第四章 课后答案

第四章参考答案1.设下列指令中的所有标识符均是类型属性为字的变量,请指出下列指令中哪些是非法的指令?错误的原因?⑴MOV BP,AL⑵MOV WORD_OP1,WORD_OP2⑶MOV SA VE_WODR,DS⑷MOV SP,SS:DA TA_WORD[BX][SI]⑸MOV [BX][SI],2解:(1)非法。

源操作数与目的操作数类型不符。

(2)合法。

(3)合法。

(4)合法。

(5)非法。

需说明操作数类型。

2.设V AR1和V AR2为字变量,LAB为标号,试指出下列指令的错误之处:⑴ADD V AR1,V AR2⑵SUB AL,V AR1⑶JMP LAB[SI]⑷JNZ V AR1⑸JMP NEAR LAB解:(1)两个操作数均为符号地址。

(2)两个操作数的类型不同。

(3)(4)(5)3.画图说明下列语句所分配的存储空间及初始化的数据值。

⑴BYTE_V AR DB ‘BYTE’,12,-12H,3 DUP(0,?,2 DUP(1,2),?)⑵WORD_V AR DW 5 DUP(0,1,2),?,-5 ‘BY’,’TE’,256H解:(1)(2)41H59H54H45H0CHF4H00H?01H02H01H02H00H?01H02H01H02H 00H 00H 00H 01H 00H 02H 00H 00H 00H 01H 00H 02H 00H 00H 00H 01H 00H 02H 00H 00H 00H 01H 00H 02H 00H 00H 00H 01H 00H 02H ??FBH FFH 59H 42H 45H 54H 56H 02H4.设程序中的数据定义如下:PARTNO DW ?PNAME DB 16 DUP(?)COUNT DD ?PLENTH EQU $-PARTNO问PLENTH的值为多少?它表示什么意义?解:PLENTH的值为22(16H)。

表示当前位置与PARTNO之间有22个字节空间。

微机原理、汇编语言与接口技术-第四章-习题答案-人民邮电出版社-(周杰英-张萍-郭雪梅-著)

微机原理、汇编语言与接口技术-第四章-习题答案-人民邮电出版社-(周杰英-张萍-郭雪梅-著)

微机原理、汇编语言与接口技术-第四章-习题答案-人民邮电出版社-(周杰英-张萍-郭雪梅-著)第4章汇编语言程序设计习题与参考答案1、指出以下数据定义伪指令所分配的字节数(8086系统)。

(1)DATA1 DB 10,?,‘A’(2)DATA2 DW 10 DUP(2,3 DUP(?),1)(3)DATA3 DB ‘HELLO,WORLD!’,‘$’(4)DATA4 DW D ATA4解:(1)3字节;(2)100字节;(3)13字节;(4)2字节。

2、指出以下数据定义伪指令所分配的字节数(80386系统)。

(1)DATA1 DF 12,34,56(2)DATA2 DF D ATA2(3)DATA3 DQ 0,10 DUP(?)(4)DATA4 DT 0,1,2解:(1)18字节;(3)6字节;(3)88字节;(4)30字节。

3、指出以下指令中哪些是无效的,并说明原因。

(1)ADDR DB $(2)DATA DB F0H,12H(3)1_DATA DW 1234H(4)@VAR DW V AR1 ;VAR1为一个字节变量(5)MOV AX,[10-VAR1] ;VAR1为一个字变量(6)MOV BX,[VAR2*2+1] ;VAR2为一个字变量解:(1)非法,地址计数器$是32位数;(2)非法,以字母开头的16进制数应在前面加“0”,即应为“0F0H”;(3)非法,变量名非法,不能以数字开头;(4)合法;(5)非法,地址表达式不能是“常数-地址”;(6)非法,地址表达式不能出现乘法。

4、假设已定义数据段如下:DATA SEGMENTORG 100HDATA1 DB 10 DUP(1,2,3)DATA2 DW DATA1,$DATA ENDS且段寄存器DS已初始化为该数据段的段基址(假设段基址为1234H)。

请指出以下指令执行后,相应的寄存器中的内容。

(1)MOV AX,WORD PTR DATA1 ;(AX)=?(2)MOV BX,DATA2 ;(BX)=?(3)MOV CX,DATA2+2 ;(CX)=?(4)MOV DX,OFFSET DATA2 ;(DX)=?(5)MOV SI,SEG DATA1 ;(SI)=?(6)MOV DI,LENGTH DATA1 ;(DI)=?(7)MOV SP,TYPE DATA1 ;(SP)=?(8)MOV BP,SIZE DATA2 ;(BP)=? 解:(注意是16进制,算的时候要转换) (1)(AX)=0201H;(2)(BX)=0100H;(3)(CX)=0120H;(4)(DX)=011EH;(5)(SI)=1234H;(6)(DI)=000AH;(7)(SP)=0001H;(8)(BP)=0002H。

《微机原理与接口技术》(第四版)周何琴课后习题答案

《微机原理与接口技术》(第四版)周何琴课后习题答案

《微机原理与接⼝技术》(第四版)周何琴课后习题答案第4章作业P1535. 阅读下列程序,说明每条指令执⾏后的结果是什么?X1 DB 65H, 78HX2 DW 06FFH, 5200HX3 DD ?GO: MOV AL, TYPE X1MOV BL, TYPE X2MOV CL, TYPE X3MOV AH, TYPE GOMOV BH, SIZE X2MOV CH, LENGTH X3解:(1)前三条语句的功能是设置数据于数据段中,从数据段偏移地址0000H开始存放。

变量偏移地址数据X1 0000H0001HX2 0002H0003H0004H0005HX3 0006H0007H0008H0009H六条程序执⾏结果如下:(AL)=01H;设置变量类型属性,字节数(BL)=02H;设置变量类型属性,字节数(CL)=04H;设置变量类型属性,字节数(AH)=0FFH;设置GO显⽰类型,近标号,为-1,补码表⽰(BH)=02H;设置数据类型,⽆DUP时,返回数据类型的字节数(CH)=01H;⽆DUP时,返回1。

程序执⾏后结果如下:调试程序如下:STACK SEGMENT STACKDB 100 DUP(?)STACK ENDSDATA SEGMENTCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: PUSH DSMOV AX,DA TAMOV DS,AXGO: MOV AL, TYPE X1MOV BL, TYPE X2MOV CL, TYPE X3MOV AH, TYPE GOMOV BH, SIZE X2MOV CH, LENGTH X3POP DSHLTCODE ENDSEND START6. 画出⽰意图,说明下列变量在内存中如何让存放?A1 DB 12H, 34HA2 DB ‘Right.’A3 DW 5678HA4 DB 3 DUP(?)(1)设置数据于数据段中,从数据段偏移地址0000H开始存放。

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

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

第一章课后习题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=.11B=43.6Q=23.CH③ 123.875D=.111B=173.7Q=7B.EH④ 97/128D=64/123+32/128+1/128=0.B=0.604Q=0.C2H1.2 ① 10101.01B=21.25D ② 11001.0011B=25.1875D③ 111.01B=7.25D ④ 1010.1B=10.5D1.3 ① 756.07Q=.B=494.109D ② 63.73Q=.B=51.922D③ 35.6Q=11101.110B=29.75D ④ 323.45Q=.B=211.578D1.4 ① A7.8H=167.5D ② 9AD.BDH=2477.738D③ B7C.8D=2940.551D ④ 1ECH=492D1.5 ① [+127]补= ② [-1]补=③ [-0]补= ④[-128]补=1.6 ① [+355]补= 00011 ② [-1]补= 1111 1111 1111 11111.7 答:传统上分为三类:大型主机、小型机、微型机。

微机原理 第四章答案

微机原理 第四章答案
14、设(BX)=0400H,(DI)=003CH,执行 LEA BX,[BX+DI+0F62H]后,(BX)=? (BX)=139E H
15、设(DS)=C000H,(C0010H)=0180H, (C0012H)=2000H,执行LDS SI,[10H]后, (SI)=?, (DS)=? (SI)=0180 H,(DS)=2000 H
REP STOSW 程序段的功能:
将起始地址为0404 H开始的80 H(128)个字单元清成0 或将起始地址为0404 H开始的100 H(256)个字节单元清成0
11
第4章 微型计算机原理作业情况
13、 设(BX)=6B30H,(BP)=0200H,(SI)=0046H, (SS)=2F00H,(2F246H)=4154H,试求执行 XCHG BX,[BP+SI]后, (BX)=?,(2F246H)=? (BX)=4154H (2F246H)=6B30H
6
第4章 微型计算机原理作业情况
8、分别执行下列指令,试求AL的内容及各状态标志位的状态。
(1) MOV AL,19H ;
ADD AL,61H ;(AL)=7AH
OF=0 SF=0 ZF=0 AF=0 PF=0 CF=0
(2) MOV AL,19H ;
SUB AL,61
;(AL)=0DCH
OF=0 SF=1 ZF=0 AF=1 PF=0 CF=1
(1) MOV CL,20H[BX][SI] ;(CL)=0F6 H
(2) MOV [BP][DI],CX
;(1E4F6 H)=5678 H
(3) LEA BX,20H[BX][SI] ;(BX)=0056 H
MOV AX,2[BX]
;(AX)=1E40 H

微机原理与接口技术(4-8)例题与习题解答

微机原理与接口技术(4-8)例题与习题解答
XOR BX,BX;BL与BH分别存放正、负元素的个数
XOR DH,DH;DH寄存器存放O元素个数
NEXT2: MOV AL,[SI]
CMP AL,0
JZ ZERO;若ZF=1,则为O,转至ZERO,DH+1
JS NEGAT;若SF=0则为负数,BH+1
JMP PLUS;既不是O又不是负,则为正数,BL+1
ZERO: INC DH;O的个数加1
JMP NEXT3
NEGAT: INC BH;负数个数加1
JMP NEXT3
PLUS:INC BL ;正数个数加1
NEXT3:INC SI;修改地址指针SI
LOOP NEXT2;未完,继续循环
MOV[SI],DH;存人O元素个数统计结果
INC SI
MOV[SI],BX;存人正、负数个数统计结果
1.
例4.1写出下面数据段中每个符号或变量所对应的值。
DATA SEGMENT
ORG 1000H
MAX EQU OFFH
ONE EQU MAX MOD 10
TWO EQU ONE x 4
SIZE EQU((TWO LT 20H)AND 10H)+10H
BUF DB SIZE x 2 DUP(?)
COUNT EQU$ - BUF
例4.8已知多位数x(如8个字节)的补码,编一程序求一x的补码。
解根据补码的定义,可采用O减去该多位数实现。
DATA SEGMENT
NUM DQ 1234567890ABCDEFH
CONT DW 4
DATAENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA

《微机原理与接口技术》第四章习题集与解答

《微机原理与接口技术》第四章习题集与解答

习题集解答第五章汇编语言程序设计1.从4000H单元开始定义数据段如下,请画出所定义存储器的分配图。

BUF SEGMENTDAl DW 3456HDA2 DB 2 DUP(7,8)BUF ENDS答:存储器的分配图2.对于习题1的定义,请说明下列每条指令执行后的结果。

1、MOV AX,SEG DAl2、MOV AX,SEG DA23、MOV BX,OFFSET DAl4、MOV BX,OFFSET DA25、MOV CX,TYPE DAl6、MOV CX,TYPE DA27、MOV DX,LENGTH DAl8、MOV DX,LENGTH DA29、MOV AX,SIZE DAl ‘10、MOV AX,SIZE DA2答:1、(AX)=(DS)2、(AX)=(DS)+23、(BX)=4000H4、(BX)=4002H5、(CX)=26、(CX)=17、(DX)=28、(DX)=49、(AX)=210、(AX)=43.已知数据定义如下,请计算变量PL的值是多少?DATA DB ‘AB’DATAl DB 10 DUP(?)PL EQU $-DATA答:PL=DATA+12-DATA=124.已知A=25、B=15、C=4,请计算下列表达式的值。

(1) A × 50+B (2) A MOD C+B(3)(A+4)×B-3 (4) B/3 MOD 4(5)A LE B (6) A XOR 50答:(1) A ×50+B= 25 ×50+15=1250+15=12515(2) A MOD C+B=25 MOD 4+15=1+15=16(3)(A+4)×B-3 =(25+4)×15-3 =1500-3=1497(4) B/3 MOD 4 =15/3 MOD 4 =5 MOD 4 =1(5)A LE B =25 LE 15 = 0(6) A XOR 50 = 25 XOR 50 = 435.已知内存DATA单元存放一个字数据,请统计其中含有0的个数,并送人RESULT单元的程序。

《微机原理与接口技术》第四章习题集与解答

《微机原理与接口技术》第四章习题集与解答

习题集解答第五章汇编语言程序设计1.从4000H单元开始定义数据段如下,请画出所定义存储器的分配图。

BUF SEGMENTDAl DW 3456HDA2 DB 2 DUP(7,8)BUF ENDS答:存储器的分配图2.对于习题1的定义,请说明下列每条指令执行后的结果。

1、 MOV AX,SEG DAl2、MOV AX,SEG DA23、MOV BX,OFFSET DAl4、MOV BX,OFFSET DA25、MOV CX,TYPE DAl6、MOV CX,TYPE DA27、MOV DX,LENGTH DAl8、MOV DX,LENGTH DA29、MOV AX,SIZE DAl ‘10、MOV AX,SIZE DA2答:1、(AX)=(DS)2、(AX)=(DS)+23、(BX)=4000H4、(BX)=4002H5、(CX)=26、(CX)=17、(DX)=28、(DX)=49、(AX)=210、(AX)=43.已知数据定义如下,请计算变量PL的值是多少?DATA DB ‘AB’DATAl DB 10 DUP(?)PL EQU $-DATA答:PL=DATA+12-DATA=124.已知A=25、B=15、C=4,请计算下列表达式的值。

(1) A × 50+B (2) A MOD C+B(3)(A+4)×B-3 (4) B/3 MOD 4(5)A LE B (6) A XOR 50答:(1) A × 50+B= 25 × 50+15=1250+15=12515(2) A MOD C+B=25 MOD 4+15=1+15=16(3)(A+4)×B-3 =(25+4)×15-3 =1500-3=1497(4) B/3 MOD 4 =15/3 MOD 4 =5 MOD 4 =1(5)A LE B =25 LE 15 = 0(6) A XOR 50 = 25 XOR 50 = 435.已知内存DATA单元存放一个字数据,请统计其中含有0的个数,并送人RESULT单元的程序。

微机原理与接口技术(第四版)课后习题答案北京大学出版社

微机原理与接口技术(第四版)课后习题答案北京大学出版社

1第1章微型计算机系统〔习题1.1〕简答题(1)计算机字长(Word)指的是什么?(2)总线信号分成哪三组信号?(3)PC机主存采用DRAM组成还是SRAM组成?(4)Cache是什么意思?(5)ROM-BIOS是什么?(6)中断是什么?(7)32位PC机主板的芯片组是什么?(8)教材中MASM是指什么?(9)处理器的“取指-译码-执行周期”是指什么?(10)本课程的主要内容属于计算机系统层次结构中哪个层次?〔解答〕①处理器每个单位时间可以处理的二进制数据位数称计算机字长。

②总线信号分成三组,分别是数据总线、地址总线和控制总线。

③ PC机主存采用DRAM组成。

④高速缓冲存储器Cache是处理器与主存之间速度很快但容量较小的存储器。

⑤ ROM-BIOS是“基本输入输出系统”,操作系统通过对BIOS的调用驱动各硬件设备,用户也可以在应用程序中调用BIOS中的许多功能。

⑥中断是CPU正常执行程序的流程被某种原因打断、并暂时停止,转向执行事先安排好的一段处理程序,待该处理程序结束后仍返回被中断的指令继续执行的过程。

⑦主板芯片组是主板的核心部件,它提供主板上的关键逻辑电路。

⑧ MASM是微软开发的宏汇编程序。

⑨指令的处理过程。

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

⑩机器语言层,即指令集结构。

(学生很多认为是:汇编语言层。

前4章主要涉及汇编语言,但本书还有很多处理器原理等内容)〔习题1.2〕判断题(1)软件与硬件的等价性原理说明软硬件在功能、性能和成本等方面是等价的。

(2)IA-64结构是IA-32结构的64位扩展,也就是Intel 64结构。

(3)8086的数据总线为16位,也就是说8086的数据总线的个数、或说条数、位数是16。

(4)微机主存只要使用RAM芯片就可以了。

(5)处理器并不直接连接外设,而是通过I/O 接口电路与外设连接。

《微机原理与接口技术》第四章习题集与解答

《微机原理与接口技术》第四章习题集与解答

习题集解答第五章汇编语言程序设计1.从4000H单元开始定义数据段如下,请画出所定义存储器的分配图。

BUF SEGMENTDAl DW 3456HDA2 DB 2 DUP(7,8)BUF ENDS答:存储器的分配图2.对于习题1的定义,请说明下列每条指令执行后的结果。

1、MOV AX,SEG DAl2、MOV AX,SEG DA23、MOV BX,OFFSET DAl4、MOV BX,OFFSET DA25、MOV CX,TYPE DAl6、MOV CX,TYPE DA27、MOV DX,LENGTH DAl8、MOV DX,LENGTH DA29、MOV AX,SIZE DAl ‘10、MOV AX,SIZE DA2答:1、(AX)=(DS)2、(AX)=(DS)+23、(BX)=4000H4、(BX)=4002H5、(CX)=26、(CX)=17、(DX)=28、(DX)=49、(AX)=210、(AX)=43.已知数据定义如下,请计算变量PL的值是多少?DATA DB ‘AB’DATAl DB 10 DUP(?)PL EQU $-DATA答:PL=DATA+12-DATA=124.已知A=25、B=15、C=4,请计算下列表达式的值。

(1) A × 50+B (2) A MOD C+B(3)(A+4)×B-3 (4) B/3 MOD 4(5)A LE B (6) A XOR 50答:(1) A ×50+B= 25 ×50+15=1250+15=12515 (2) A MOD C+B=25 MOD 4+15=1+15=16(3)(A+4)×B-3 =(25+4)×15-3 =1500-3=1497(4) B/3 MOD 4 =15/3 MOD 4 =5 MOD 4 =1(5)A LE B =25 LE 15 = 0(6) A XOR 50 = 25 XOR 50 = 435.已知内存DATA单元存放一个字数据,请统计其中含有0的个数,并送人RESULT单元的程序。

微机原理与接口技术(楼顺天第二版)第四章习题解答

微机原理与接口技术(楼顺天第二版)第四章习题解答

微机原理与接口技术(楼顺天第二版)习题解答第4章汇编语言程序设计4。

1、已知在BUF的起始处保存有N个字符的ASCII码,编写汇编语言程序实现,将这组字符串传送到缓冲区BUFR中,并且使字符串的顺序与原来的顺序相反。

答:BUF D B ”BONJOUR_BELLE"BUFR DB 100 DUP(?)MOV CX, NLEA SI, BUFLEA DI, BUFRADD DI,CXDEC DIL1:MOV AL,[SI]MOV [DI],ALINC SIDEC DILOOP L14。

2、利用移位、传送和相加指令实现AX的内容扩大10倍.答:将扩大后的结果放在DX:AX中,注意到10×AX=8×AX+2×AX。

XOR DX,DXSHL AX,1RCL DX,1MOV BX,AXMOV CX,DXSHL AX,1RCL DX, 1SHL AX, 1RCL DX, 1ADD AX, BXADC DX, CX4。

3、在缓冲区V AR中连续存放着3个16位的无符号数,编写程序实现将其按递增关系排列;如果V AR中保存的为有符号数,则再编写程序实现将其按递减关系排列。

答:V AR DW 1236,-432,3900XOR SI,,SIMOV AX,V AR[SI]CMP AX,V AR[SI+2]JAE L1XCHG AX,V AR[SI+2]L1:CMP AX, V AR[SI+4]JAE L2XCHG AX, V AR[SI+4]L2:MOV V AR[SI],AXMOV AX,V AR[SI+2]CMP AX,V AR[SI+4]JAE L3XCHG AX,V AR[SI+4]L3:MOV V AR[SI+2], AX4。

4、编写程序段实现将AL和BL中的每一位依次交叉,得到的16位字保存在DX中,例如(AL)=01100101B,(BL)=11011010B,则得到的(DX)=10110110 10011001B。

微型计算机原理与接口技术第四章课后答案

微型计算机原理与接口技术第四章课后答案

第四章1. 下列变量各占多少字节?A1 DW 23H,5876HA2 DB 3 DUP(?),0AH,0DH, ‘$’A3 DD 5 DUP(1234H, 567890H)A4 DB 4 DUP(3 DUP(1, 2,’ABC’))答:A1占4个字节A2占6个字节A3占40个字节A4占60个字节2. 下列指令完成什么功能?MOV AX,00FFH AND 1122H+3344HMOV AL,15 GE 1111BMOV AX,00FFH LE 255+6/5AND AL, 50 MOD 4OR AX, 0F00FH AND 1234 OR 00FFH答:(1)将0066H传送给AX(2)将0FFH传送给AL(3)将0FFFFH传送给AX(4)AND AL,02H(5)OR AX,00FFH3. 有符号定义语句如下:BUF DB 3,4,5,’123’ABUF DB 0L EQU ABUF-BUF求L的值为多少?答:L=64. 假设程序中的数据定义如下:PAR DW ?PNAME DB 16 DUP(?)COUNT DD ?PLENTH EQU $-PAR求PLENTH的值为多少?表示什么意义?答:PAR的偏移地址为0,PLENTH当前偏移地址$=2+16+4=22, $-PAR=22,故PLENTH 的值为22。

若在PLENTH所在行有变量定义,则$表示该变量的偏移地址,即$表示PLENTH所在行的当前偏移地址。

故PLENTH表示从当前行到PAR之间定义的变量所占的字节个数。

5. 对于下面的数据定义,各条MOV指令执行后,有关寄存器的内容是什么?DA1 DB ?DA2 DW 10 DUP(?)DA3 DB ‘ABCD’MOV AX, TYPE DA1MOV BX, SIZE DA2MOV CX, LENGTH DA3答:AX=1,BX=20,CX=16. 下段程序完成后,AH等于什么?IN AL, 5FHTEST AL, 80HJZ L1MOV AH, 0JMP STOPL1: MOV AH, 0FFHSTOP: HLT答:讨论从端口5FH输入的数据最高位的情况。

微机原理与接口技术 第4章课后作业答案.

微机原理与接口技术 第4章课后作业答案.
第4章 汇编语言程序设计 4.1请分别用DB 、DW 、DD伪指令写出在DATA开始的连续8个单元中依次存放数据 11H 、22H 、33H 、44H 、55H 、66H 、77H 、88H的数据定义语句. 解:DB,DW,DD伪指令分别表示定义的数据为字节类型、字类型及双字型.其定义形式为 : DATA DB 11H,22H,33H,44H,55H,66H,77H,88H DATA DW 2211H,4433H,6655H,8877H DATA DD 44332211H,88776655H 4.2若程序的数据段定义如下,写出各指令语句独立执行后的结果: DSEG SEGMENT DATA1 DB 10H,20H,30H DATA2 DW 10 DUP(?) STRING DB ‘123’ DSEG ENDS (1) MOV AL,DATA1 (2) MOV BX,OFFSET DATA2 (3) LEA SI,STRING ADD DI,SI 解: (1) 取变量DATA1的值. 指令执行后,(AL)=10H. 1 (2) 变量DATA2的偏移地址. 指令执行后,(BX)=0003H.
6
4.7执行下列指令后,AX寄存器的内容是多少? TABLE DW 10,20,30,40,50 ENTRY DW 3 . . . MOV BX,OFFSET TABLE ADD BX,ENTRY MOV AX,[BX] 解:(AX)=1E00H 4.8 编写程序段,将STRING1中的最后20个字符移到STRING2中(顺序不变)。 解:首先确定STRING1中字符串的长度,因为字符串的定义要求以‘$’符号结尾, 可通过检测‘$’符确定出字符串的长度,设串长度为COUNT,则程序如下: LEA SI,STRING1 LEA DI,STRING2 ADD SI,COUNT-20 MOV CX,20 CLD REP MOVSB

微机原理第4章习题与答案

微机原理第4章习题与答案
(2)PRGM SEG
……
PRGM ENDS
(3)ALPHA EQU BETA
(4) COUNT EQU 100
COUNT EQU 65
(5) GOON DW 10DUP(?)
……
JMP GOON
答案:
(1)字节变量,范围在0~255
(2)定义段的伪指令为SEGMENT
(3)BETA必须先定义
(4)EQU不能重复定义,在下一次定义前必须用PURGE撤消
MOV BX, F1
答案:
(1)
DATA SEGMENT PARA 'DATA' AT 46H
QA EQU 255;QA=255
QA1=QA GT 3000;255大于3000,命题假,QA1=0
QA2=0FFFH;QA2=0FFFH
QA3 EQU QA2 XOR 255;QA3=0FFFH⊕0FFH=0F00H
AND AX, 0FFH;AX=0045H
MOV BX, WORD PTR G1;BX=0FF20H
MOV BX, 255 AND 0FH;BX=000FH
ADD AX, OFFSET F2;AX=1245H
MOV BX, F1;BX=2211H
4.以下程序的执行结果是_______。
ADB‘1234’
BDW5 DUP(2,3 DUP(0))
CDW‘AB’,’C’,’D’
L1:MOVAL,TYPE B
MOVBL,LENGTHB
MOVAH,SIZE A
MOVBH,SIZE C
MOVCL,TYPEL1
MOVCH,SIZEB
答案:AX=0102H,BX=0205HCX=0AFFH

微机原理第四章练习题及解答

微机原理第四章练习题及解答

微机原理第四章练习题及解一:单项选择题●汇编源程序文件的扩展名是( C )。

A:*.LST B:*.OBJ C:*.ASM D:*.EXE●源程序文件汇编后的目标文件的扩展名是( B )。

A:*.LST B:*.OBJ C:*.ASM D:*.EXE●目标文件连接后的可执行文件的扩展名是( D )。

A:*.LST B:*.OBJ C:*.ASM D:*.EXE●下列可作为标识符用的字符串是( C )。

A:MOV B:ZF C:FAH D:PTR●下列为寄存器名的字符串是( B )。

A:ZP B:BP C:AP D:CP●下列为状态标志的字符串是( A )。

A:ZP B:BF C:DF D:TF●下列为控标志的字符串是( D )。

A:ZP B:SF C:OF D:TF●下列为指令助记符的字符串是( C )。

A:ADCC B:AAAA C:SUB D:POOP●下列为运算符的字符串是( B )。

A:ADC B:PTR C:OAG D:LOOP●定义字类型的伪指令符是( B )。

A:DB B:DW C:DD D:DQ●说明字节类型的伪指令符是( C )。

A:WORD B:DWORD C:BYTE D:SHOR●返回变量段属性的伪指令符是( B )。

A:OFFSET B:SEG C:TYPE D:SIZE●定义过程结束的伪指令符是( C )。

A:END B:ENDS C:ENDP D:ENDM●下列为段定义的伪指令是( B )。

A:PROC B:SEGMENT C:ASSUME D:STRUC●下列为符号定义的伪指令是( B )。

A:ORG B:EQU C:STR D:RET二:填空题●将指令助记符翻译为指令机器码的过程称为(汇编)。

●汇编程序的功能是输入扩展名为ASM的(汇编源程序)文件,输出扩展名为OBJ的(目标代码)文件和扩展名为LST的(列表)文件。

●汇编源程序中的保留字类型有(寄存器名)、(标志名)、(指令助记符)、(伪指令符)和(运算符)。

微机原理与接口技术第四章试题及答案

微机原理与接口技术第四章试题及答案

第四章4-1填空1.MCS-51的Po口作为输出端口时,每位能驱动8 个SL型TTL负载.2.MCS-51有4个并行I\O口,其中P0~P3是准双向口,所以由输出转输入时必须先写入"1"3.设计8031系统时,_P0、P2 口不能用作一般I\O口.4.MCS-51串行接口有4种工作方式,这可在初始化程序中用软件填写特殊功能寄存器__SCON _加以选择.5.当使用慢速外设时,最佳的传输方式是中断.6.当定时器To工作在方式3 时,要占定时器T1的TR1和TF1_两个控制位.7.MCS-51有5 个中断源,有2 个中断优先级,优先级由软件填写特殊功能寄存器IP 加以选择..8.用串口扩并口时,串行接口工作方式应选为方式0 .9.在串行通信中,有数据传送方向单工、半双工、全双工三种方式.10.外部中断入口地址为_ 0013H4-2判断1.MCS-51的5个中断源优先级相同。

(×)2.要进行多机通信,MCS-51串行接口的工作方式应为方式1。

(×)3.MCS-51上电复位时,SBUF=00H。

(×)。

4.MCS-51有3个中断源,优先级由软件填写特殊功能寄存器IP加以选择.. (×)5.用串口扩并口时,串行接口工作方式应选为方式1. (×)6.外部中断INTO 入口地址为_0013H(×)7.MCS-51外部中断0的入口地址是0003H。

(√).8.TMOD中的GATE=1时,表示由两个信号控制定时器的启停。

(√)。

9.使用8751且=1时,仍可外扩64KB的程序存储器。

(×)10.PC存放的是当前执行的指令。

(×)11.MCS-51的特殊功能寄存器分布在60H~80H地址范围内。

(×)12.MCS-51有4个并行I\O口,其中P0~P3是准双向口,所以由输出转输入时必须先写入"0"(×)4-3选择1.在中断服务程序中,至少应有一条( D )(A)传送指令(B)转移指令(C)加法指法(D)中断返回指令2.要使MCS-51能够响应定时器T1中断、串行接口中断,它的中断允许寄存器IE的内容应是( B )(A)98H (B)84H (C)42 (D)22H3.D MCS-51在响应中断时,下列哪种操作不会发生( D ).(A)保护现场(B)保护PC (C)找到中断入口若悬河(D)保护PC转入中断入口4.用MCS-51串行接口扩展并行I\O口时,串行接口工作方式应选择( C )(A)方式0 (B)方式1 (C)方式2 (D)方式35.MCS-51有中断源(A)(A)5个(B)2个(C)3个(D)6个6.MCS-51响应中断时,下面哪一个条件不是必须的()(A)当前指令执行完毕(B)中断是开放的确(C)没有同级或高级中断服务须(D)必须有RET1指令7.使用定时器T1时,有几种工作模式(D)(A)1种(B)2种(C)3种(D)4种8.计算机在使用中断方式与外界交换信息时,保护现场的工作方式应该是( B )(A)由CPU自动完成(B)在中断响应中完成功之路(C)应由中断服务程序完成(D)在主程序中完成9.下面哪一种传送方式适用于处理外部事件( C )(A)DMA (B)无条件传递进(C)中断(D)条件传递1、2、4章的编程1.8225A控制字地址为300FH,请按:A口方式0输入,B口方式1输出,C口高位输出,C口低位输入,确定8225A控制字并编初始化程序.解:控制字为10010101=95H初始化程序:MOV DPTR ,#300FHMOV A,#95HMOVX @DPTR ,A2.编定一个软件延时1S和1min的子程序.设fosc=6Hz,则一个机器周期1μs。

【最新精选】《微机原理与接口技》(第四版)周何琴课后习题答案

【最新精选】《微机原理与接口技》(第四版)周何琴课后习题答案

第1章绪论作业1. 将下列二进制数转换成十进制数。

(1)11001010B=202 (2)00111101B=61(3)01001101B=77 (4)10100100B=1643. 将下列十进制数分别转换为二进制数和十六进制数。

(2)76= 100 1100B =4CH(4)134= 1000 0110B =86H4. 求下列十进制数的BCD码(1)327=11 0010 0111(BCD码)(2)1256=1 0010 0101 0110(BCD码)6. 求出下列10进制数的原码、反码和补码(2)+85 (4)-85解:85=0101 0101B原码:+85= 0101 0101B -85= 1101 0101B反码:+85= 0101 0101B -85= 1010 1010B补码:+85= 0101 0101B -85= 1010 1011B10. 画出微型计算机的基本结构框图,说明各部分的主要功能是什么?解:微型计算机的基本结构框图如下:微处理器CPU:控制微处理器与存储器或I/O设备间的数据交换;进行算术和逻辑运算等操作;判定和控制程序流向。

微处理器主要完成:(1)指令控制:从存储器中取指令,指令译码;(2)数据加工:简单的算术逻辑运算;(3)操作控制:在微处理器和存储器或者I/O之间传送数据;(4)时间控制:程序流向控制。

存储器:用来存放数据和指令。

I/O接口:主机和外设间的桥梁,提供数据缓冲驱动、信号电平转换、信息转换、地址译码、定时控制等各种功能。

I/O设备:输入原始数据和程序,转换成计算机能识别的信息,送入存储器去等待处理。

输出运算结果。

总线:连接计算机系统中各功能部件的信息通道。

第2章 8086CPU作业2. 8086CPU内部由哪两部分组成?它们的大致是如何工作的?答:(1)8086CPU由指令执行部件EU和总线接口部件BIU两部分组成。

(2)①BIU先执行读存储器操作,从给定地址单元中取出指令,送到先进先出的指令队列中等待执行。

微机原理与接口技术(科学出版社)第4章课后习题及答案

微机原理与接口技术(科学出版社)第4章课后习题及答案

微机原理与接口技术第四章课后习题1.指令主要有哪些分类方式? 其主要类别是什么?答:操作数、级别、功能。

操作数:无操作数、单操作数、双操作数三操作数;级别:机器指令和汇编指令功能:传送类、算术运算类、位操作类、I/O类、串操作类、CPU控制类、转移类;2.80X86的寻址方式有哪些?它们的具体含义是什么?答:操作数寻址方式主要有立即寻址方式、寄存器寻地址、存储器寻址方式、端口寻址方式(1)立即寻址方式:操作对象是这个操作数本身(2)寄存器寻地址:操作对象是寄存器中的内容(3)存储器寻址方式:操作对象是内存地址所对应的存储单元中的内容(4)端口寻址方式:操作数是指明端口的地址、端口地址所对应的端口中的内容是操作对象3. 指出下列各指令中源操作数和目的操作数的寻址方式:⑴MOV BX,WORD PTR[2200H] ⑵ AAA⑶JUM 2200H ⑷ LES DI,[2100H]⑸ MOV [BX+SI+8], BX ⑹ ADD AX,[BP+3000H]答:⑴MOV BX, WORD PTR[2200H] 源操作数:直接寻址;目的操作数:寄存器寻址⑵AAA 源操作数:寄存器寻址AL(也称隐含寻址);目的操作数:寄存器寻址⑶JUM 2200H 程序转移段内直接寻址方式⑷LES DI,[2100H] 源操作数:直接寻址;目的操作数:寄存器寻址⑸MOV [BX+SI+8], BX 源操作数:寄存器寻址;目的操作数:相对基址变址寻址⑹ADD AX,[BP+3000H] 源操作数:直接寻址;目的操作数:寄存器相对寻址4. 设CS=1000H,DS=2000H,ES=3000H,SS=4000H,IP=100H,SP=200H,BX=300H,BP=400H,SI=500 H,则:(1)10202H(2)40300H(3)21010H(4)42156H(5)31510H5.写出清除AX寄存器内容的方法并比较。

《微机原理与接口》第3、4章作业答案

《微机原理与接口》第3、4章作业答案

数据段定义如下: DATA SEGMENT STRING DB 'The Personal Computer & TV’ COUNT DW $-STRING DATA ENDS (2)比较该字符串是否与“ The computer”相同,若相同则将AL寄存 附加段定义如下: 器的内容置1,否则置0,并要求将 EXTRA SEGMENT 比较次数送到BL寄存器中。 GET_CHAR DB 26 DUP(?) STRING1 DB 'The Computer’ MOV SI,OFFSET STRING CAPS DB 26 DUP(?) MOV DI,OFFSET STRING1 CHART DB 26 DUP(?) MOV CX,COUNT EXTRA ENDS MOV BX,CX CLD (1)把该字符串传送到附加段中 REPZ CMPSB 偏移量为GET_CHAR开始的内存 JZ GO 单元中。 MOV AL,0 MOV SI,OFFSET STRING JMP DONE MOV DI,OFFSET GET_CHAR GO: MOV AL,1 MOV CX,COUNT DONE:SUB BL,CL REP MOVSB HLT HLT
3-12 假设数据段定义如下: - DATA SEGMENT STRING DB ‘ The Personal Computer & TV’ DATA ENDS 试用字串操作等指令编程完成以下功能: (1)把该字符串传送到附加段中偏移量为GET_CHAR开 始的内存单元中。 2 computer” (2)比较该字符串是否与“ The computer”相同,若相同 则将AL寄存器的内容置1,否则置0,并要求将比较次数送 到BL寄存器中。 (3)检查该字符串是否有“ &”,若有则用空格符号将其 替换。 (4)把字符串大写字母传送到附加段中以CAPS开始的单 元中,其余字符传到以CHART开始的单元。然后将数据段 中存储上述字符串的单元清0。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

“微机系统原理与接口技术”第四章习题解答1.判断以下说法是否正确,如有错,请说明原因并改正。

(1)伪指令在汇编过程中不会产生二进制代码。

(2)宏和过程的相同之处是都可用于简化源程序书写、精简目标代码。

(3)在计算机中,高级语言通常需要转换为汇编语言后才能执行。

(4)汇编语言程序上机一般包括编辑、汇编、链接和调试几个步骤。

答:(1)正确。

(2)错误。

宏不能精简目标代码。

(3)错误。

高级语言程序经编译或解释后直接转换为目标代码。

(4)正确。

2.已知数据和符号定义A1 DBA2 DB 8K1 EQU 100判断下列指令的正误,并说明错误指令的原因。

(1)MOV K1,AX(2)MOV A2,AH(3)MOV BX,K1MOV [BX],DX(4)CMP A1,A2(5)K1 EQU 200答:(1)错误。

K1是符号常数,在此处相当于立即数100,故不能做目的操作数。

(2)正确。

(3)正确。

(4)错误。

A1、A2都是字节变量,相当于两个存储器单元,故不能同时出现在一条指令中直接进行比较。

(5)错误。

用EQU定义的符号不能重新赋值,除非已用PURGE解除了原值。

3.若数据段中有定义N UM1 EQU 23HN UM2 DW 0则指令MOV NUM2,NUM1 的源、目操作数的寻址方式以及指令执行后NUM2+1单元的内容分别是什么答:指令MOV NUM2,NUM1的源操作数使用立即数寻址,目的操作数使用直接寻址。

指令执行后NUM2+1单元的内容是0。

4.设DS=6000H,BX=8432H,SS=5000H,SP=3258H,内存69632H~69635H单元的内容依次是00H、11H、22H、33H。

4字节指令CALL DWORD PTR [BX+1200H] 本身位于2000H:3250H处的双字单元中。

当8086执行该指令后转移至子程序入口时,CS、IP、SS、SP各寄存器以及栈顶2个字单元的内容分别是多少答:执行结果为CS=3322H,IP=1100H,SS=5000H,SP=3254H,栈顶的两个字即断点地址,为2000H:3254H。

5.已知某数据段从物理地址03000H处开始,定义如下:D SEG SEGMENTORG 2000HA1 DD 2 DUP(7,1,)A2 DB 10 DUP(0,4,3 DUP(2),5)CNT EQU 20H Array A3 DW 100 DUP()D SEG ENDS请分别用分析运算符SEG、OFFSET、LENGTH、SIZE、TYPE求出A1、A2、A3的段基址、偏移量、类型及它们的LENGTH、SIZE。

答:(SEG A1)=0300H,(OFFSET A1)=2000H,(TYPE A1)=4,(LENGTH A1)=2,(SIZE A1)=2×4=8;(SEG A2)=0300H,(OFFSET A2)=2018H,(TYPE A2)=1,(LENGTH A2)=10,(SIZE A2)=10×1=60;(SEG A3)=0300H,(OFFSET A3)=2054H,(TYPE A3)=2,(LENGTH A3)=100,(SIZE A3)=100×2=2006.已知符号定义语句如下:A LPHA EQU 100B ETA EQU 25G AMMA EQU 2分别求下列各表达式的值。

(1)ALPHA*4 GT BETA = 100*4 GT 25 = 0FFFFH(2)ALPHA MOD GAMMA+BETA = 100 MOD 2+25 = 25(3)(BETA / 3)LE 5 =(25 / 3)LE 5 = 0(4)ALPHA AND BETA = 100 AND 25 = 64H & 19H = 0(5)GAMMA XOR(BETA EQ 25)= 2(25 EQ 25)= 0FFFDH7.已知数据段定义如下:DSEG SEGMENTORG 6ARA1 DD 110009HARA2 DW 2 DUP(),‘64’CONT1 EQU $-ARA2COUT2 EQU ARA2 -ARA1ARA3 DB CONT1 DUP(0FFH)ARA4 DB 2 DUP (, CONT2 DUP (5), ’$’ )ORG $+2VAR2 DW 569AHDB ‘AB’DSEG ENDS用示意图说明该数据段的存贮单元分配情况。

题4-7 图答:有关存储单元的内容如右图所示。

8.下列程序是否有错如有错,请改正。

该程序完成什么功能。

D ATA SEGMENTINBUF DW 100 DUP()OUTBUF DW 100 DUP()D ATA ENDSC ODE SEGMENTASSUME CS:CODE,DS:DATAM AIN PROC FARMOV AX,DATAMOV DS,AXI NIT:MOV SI,OFFSET INBUFLEA DI,OUTBUFMOV CX,100REP MOVSBM AIN ENDPC ODE ENDSEND MAIN答:改正之后的源程序清单如下(下划波浪线的语句是原来没有的或有错之处):DATA SEGMENTINBUF DW 100 DUP()OUTBUF DW 100 DUP()DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA ;原ASSUME语句未说明ES MAIN PROC FARPUSH DS ; 补充的三条指令为主程序返回提供正确的地址XOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXMOV ES,AX ; MOVS指令以ES:DI为目的串指针,故应对ES赋值INIT:MOV SI,OFFSET INBUFLEA DI,OUTBUFMOV CX,100CLD ; 从首址开始传送,应使D F=0REP MOVSW ; 应传送的是100个字而非字节RET ; 程序结束,返回DOSMAIN ENDPCODE ENDSEND MAIN该程序完成的功能是:将INBUF表内的10个字数据复制到以OUTPUT开始的连续的内存单元中。

9.读下面程序,在其中的空处添上适当内容。

该程序完成了什么功能程序运行后,变量RS的值是多少DATA SEGMENTBUF DB -13,24,5,-62,77,20,-7,145,0CNT DB $ -BUFRS DB 0DATA ENDSSTACK SEGMENT PARA STACK‘STACK’DB 256 DUP()STACK ENDSCODE SEGMENTASSUME DS:DATA,SS:STACK,CS:CODESTART PROC FARPUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXLEA BX,BUFMOV CH,0MOV CL,LP:MOV AL,[BX]TEST AL,80HJE CONTINC RSCONT:INC BXLOOP LPRETSTART ENDPCODE ENDSEND START答:程序空处可填CNT,字节变量RS的最后结果是04H。

该程序实现的功能是:统计数据段中以BUF为首址的带符号字节数据表中负数的个数,CNT为表中所有数据的个数,即表的长度。

需要注意的是:十进制数据“145”在以二进制带符号字节数据形式存放时相当于“-111”。

10.编写一个完整的源程序,将数据35、-27、-13、6、-47、52、9、-3中的正数放入以BUFFER为首址的数据缓冲区中。

答:一种可能的程序如下实现:DATA SEGMENTBLOCK DB 35,-27,-13,6,-47,52,9,-3COUNT EQU $-BLOCKBUFFER DB COUNT DUP()DATA ENDSSTACK SEGMENT PARA STACK‘STACK’DW 40 DUP()STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKBEGIN:MOV AX,DATAMOV DS,AXMOV ES,AX ;需用STOS串操作指令MOV CX,COUNTLEA SI,BLOCK ;源数据区指针LEA DI,BUFFER ;正数存放区指针CLD ;自动增量AGAIN:LODSB ;取源数据,并修改SITEST AL,80H ;取符号位,不影响ALJS GO ;符号位=1,是负数,不存STOSB ;存正数并修改DIGO:LOOP AGAINMOV AH,4CH ;退出循环,返回DOSINT 21HCODE ENDSEND BEGIN11.已知有一个长100个字的数据块,存放在以3DA0H:1000H开始的存储区域内。

试编写一个完整的汇编语言程序,将该数据块复制到以3DA0H:1008H开始的存储区内。

答:一种可能的程序如下实现:DATA SEGMENT AT 3DA0HORG 1000HBLOCK DW 104 DUP()DATA ENDSSSEG SEGMENT PARA STACK‘SSEG’DB 100 DUP()SSEG ENDSCODE SEGMENTASSUME CS:CODE,SS:SSEG,DS:DATA,ES:DATAMAIN PROC FARPUSH DSMOV AX,0PUSH AXMOV AX,SEG BLOCKMOV DS,AXMOV ES,AXMOV CX,200 ;重复次数LEA SI,BLOCKADD SI,199 ;SI=10C7HMOV DI,SIADD DI,8 ;DI=10CFHSTD ;自动减量REP MOVSBRETMAIN ENDPCODE ENDSEND MAIN简析:由题意可知,源数据区(占用地址3DA0:1000H~3DA0:10C7H,共200个字节)与目标数据区(占用地址3DA0:1008H~3DA0:10CFH,共200个字节)是重叠的。

若从首址开始增量传送(D F=0),将破坏1008H以后的源数据,所以必须从末址向首址减量传送(D F=1)。

数据段初始化时,有以下几点需注意:段基址规定为3DA0H,故应在段定义伪指令SEGMENT后加上AT语句;源数据区首址的偏移量规定为1000H,故应使用ORG语句指明;对源、目标数据区进行定义时,应注意目标数据区首址的偏移量是1008H。

如果定义为:ORG 1000HSOUR DW 100 DUP();源数据区DEST DW 100 DUP();目标数据区则目标数据区首址的偏移量实际上是10C8H,不合题意。

可将它们统一定义为足够长度(至少104字或208字节)的变量,如参考程序所示。

相关文档
最新文档