汇编与接口第四章作业

合集下载

第4章-汇编语言程序设计习题解答

第4章-汇编语言程序设计习题解答

习题4.10
• 下面程序段是实现从键盘输入十个一位10进制数后 累加,最后累加和以非压缩BCD码形式存放在AH (高位)和AL (低位)中。试把程序段中所空缺 的指令填上。 XOR BX ,BX ;BX清零 MOV CX,10 ; 传送数据长度 LOP:MOV AH,01H;中断INT 21H的01H号调用 INT 21H ;中断调用P172, 键入值送入AL中 MOV AH,BH ;将BH的内容传AH ADD AL,BL ;BL与AL的值相加,结果在AL中 AAA ;非压缩BCD码加法调整 MOV BX,AX ;累加结果送BX LOOP LOP ;CX-1→CX,判断CX≠0,则转
LOP: LODSB XCHG AL,[DI] XCHG SI,DI DEC DI STOSB XCHG SI,DI INC DI LOOP LOP
习题4.14
• 现有一子程序: SUB1: PROC TEST AL,80H(1000 0000B);AL的值与80H相“与”,判断正负 JE PLUS ;如果AL的首位为0(即为正),则转移到PLUS ;如果AL为负,则顺序执行 TEST BL,80H ; 判断BL的值的正负 JNE EXITO ;如果BL的首位为1(为负),则转移到EXITO ;如果BL为正,则顺序执行 JMP XCHANGE;转移到XCHANGE PLUS: TEST BL,80H ;判断BL的值的正负 JE EXITO ;如果BL的首位为0(即为正),则转移到EXITO ;如果BL为负,时顺序执行 XCHANGE: XCHG AL,BL ;AL与BL交换 EXITO: RET ;返回主程序 SUB1 ENDP 试回答(1)子程序的功能是什么? (2)如调用前AL=9AH,BL=77H,那么返回主程序时AL=?;BL=? 解答:(1)子程序的功能是判别AL和BL中的数是否为异号数,当为异号时交换,否则不 变。 (2) AL中的数据的最高位为1,BL中的数据的最高位为0,即两个数为异号,所以 要交换AL和BL中的内容,即AL=77H,BL=9AH。

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

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

“微机系统原理与接口技术”第四章习题解答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。

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

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

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

汇编习题答案 - 第四章

汇编习题答案 - 第四章

DATA_SEG SEGMENT AT 0E000H
ARRAY_B LABEL BYT E ARRAY_W DW 50 DUP (?) DATA_SEG ENDS
;以上定义数据段
;-------------------------------------------- --------------------
(6) MOV SP, SS:DATA_WORD [BX][SI] (7) MOV [BX][SI], 2
;错,[BX][SI]未指出数据类型
(8) MOV AX, WORD_OP1+WORD_OP2
(9) MOV AX, WORD_OP1-WORD_OP2+100
(10) MOV WORD_OP1, WORD_OP1-WORD_OP2 答:见注释。
MOV MOV MOV 答:见注释。
AX, LENGTH TABLEA BL, LENGT H TABLEB CL, LENGT H TABLEC
;汇编成 MOV AX, 000AH ;汇编成 MOV BL, 000AH ;汇编成 MOV CL, 0001H
4.14 对于下面的数据定义,各条 MOV 指令单独执行后,有关寄存器的内容是什么?

END MAIN_PROC
答:见注释。
4.16 按下面的要求写出程序的框架 (1) 数据段的位置从 0E000H 开始,数据段中定义一个 100 字节的数组,其类型属性既 是字又是字节; (2) 堆栈段从小段开始,段组名为 STACK; (3) 代码段中指定段寄存器,指定主程序从 1000H 开始,给有关段寄存器赋值; (4) 程序结束。 答:程序的框架如下:
4.6 试列出各种方法,使汇编程序把 5150H 存入一个存储器字中(如:DW 5150H)。 答:DW 5150H BYTE_VAR 42H WORD_VAR 00H

汇编语言程序设计 程学先 汇编第2、3,4章作业参考答案

汇编语言程序设计 程学先 汇编第2、3,4章作业参考答案

2.16编写程序段,使(AH)与( AL)中的内容互换。

解1MOV BL,ALMOV AL,AH.MOV AH,BL解2XCHG AH,AL2.17编写程序段,使(BL)中高 4 位与低4 位内容互换。

解1MOV CL,4MOV BH,0SHL BX,CLADD BL,BH解2MOV CL,4ROL BL,CL2.18编写程序段,实现当(DL)是奇数时使(AL)=31H,否则使(AL)=30H。

SHR DL,1MOV AL,0RCL AL,1ADD AL,30H2.20设寄存器AX中存放1234H,BX寄存器中存放 1 ,执行DIV BL 指令后,会发生什么现象?为什么?溢出,商超过8位,在AL中存放不下商。

2.21设DX 寄存器中存放值为0 ,AX中存放1234H,BX中存放 1 ,执行DIV BX 后,是否会出现与 2.20 相同现象?为什么?不会,因为是16位除法,商未超过16位2.22一字数据压栈时堆栈指针如何改变?弹出一字数据时堆栈指针如何改变?压栈时堆栈指针减2;弹出一字数据时堆栈指针加22.23 已知(SP)=2088H,(AX)=1A89H,(BX)=90CDH。

依次执行以下三条指令后,画图说明堆栈中数据情况,及SP、AX、BX中数据。

PUSH AXPUSH BXPOP AX(SP)=2086H,(AX)=90CDH,(BX)=90CDH。

*2.25编写程序段求8!(8的阶乘)。

MOV AX,8MOV BX,7NEXT:DX,0MUL BXDEC BXJNZ NEXT2.27假设(AX)=07EH,变量BUFFER中存放的内容为B5H,求下列各条指令单独执行后的结果。

(1)AND AX,BUFFER 34H(2)XOR AX,BUFFER CBH(3)OR AX,BUFFER 0FFH(4)AND AX,0 0(5)XOR AX,OFFH 81H(6)TEST AX,8000H 相与结果为0时。

汇编语言第3-4章平时练习题

汇编语言第3-4章平时练习题

3.知识点:0403(汇编语言程序格式) *汇编语言源程序经汇编程序汇编后产生的文件的扩展名是(B)。

选项A)MAP选项B)OBJ选项C)ASM选项D)EXE4.知识点:0403(汇编语言程序格式) *汇编语言的什么文件经链接(LINK)后产生可执行文件?(D)选项A)EXE选项B)OBJ选项C)MAP选项D)LST7. 知识点:0401(汇编程序功能) *汇编语言源程序是(A)程序。

选项A)不可直接执行的选项B)经连接后就可直接执行的选项C)经汇编程序汇编后就可执行的选项D)可直接执行的14知识点:0302(程序占有的空间和执行时间) **如果指令的运算结果为0,则(C)标志位为1。

选项A)SF选项B)CF选项C)ZF选项D)OF15知识点:0302(程序占有的空间和执行时间) **如果指令的运算结果中有奇数个1,则(C)标志位为0。

选项A)OF选项B)CF选项C)PF选项D)SF16. 知识点:0301(80x86的寻址方式) *IBM PC机的内存是按(D)是编址的。

选项A)位选项B)双字选项C)字选项D)字节23知识点:0301(80x86的寻址方式80x86的寻址方式) **如果内存的某一单元的物理地址为12345H。

则它的逻辑地址为(C):0345H。

选项A)0120H选项B)12000H选项C)1200H选项D)0012H24知识点:0301(80x86的寻址方式80x86的寻址方式) ***如果一个字变量中存放16个字,该字变量的起始地址为1000H:2000H,则该字变量数据区中的最末一个字单元的物理地址为( D)。

选项A)12020H选项B)12000H选项C)1201FH选项D)1201EH25知识点:0301(80x86的寻址方式80x86的寻址方式) **设22000H、22001H单元分别存放的数据为12H、34H,若要读取22000H字单元中的数据,此时读出的数据是(A)。

汇编语言与接口技术复习要点总结及一些习题

汇编语言与接口技术复习要点总结及一些习题

要点总结第二章微型计算机结构1.8086的段式存储结构段地址+偏移量地址=存储单元的物理地址或者,段寄存器的值*16+偏移地址=存储单元的物理地址2.段寄存器,通用寄存器,指针与变址寄存器,标志寄存器3.寻址方式(1)寻址方式的概念(2)寻址方式的分类(3)各寻址方式中对于寄存器的限制(4)各类寻址方式的格式第三章汇编语言(参照课件)1.汇编语句格式:[标号] 操作符操作数[;注释] 2.标号的概念以及其三个属性3.伪指令:(1)符号定义伪指令:EQU(2)数据定义伪指令:DB,DW(3)段定义伪指令:SEGMENT、ENDS、ASSUME 4、运算符(1)分析算符:SEG,,OFFSET ,SIZE,LENGTH(2)组合算符:PTR5.指令语句与伪指令语句的区别6.数据段、堆栈段、代码段的用途第四章指令及汇编程序设计1.数据传送指令:MOV、PUSH、POP、XCHG、XLAT2.算数运算指令:ADD、ADC、INC、SUB、SBB、DEC、NEG、3.逻辑运算指令:CMP、TEST、OR、AND、NOT、XOR4.移位指令:逻辑左移/右移,算数左移/右移,循环左移/右移,带进位的循环左移/右移;以及移位指令对于CF、OF标志位的影响分支结构程序设计1.无条件转移指令2.有条件的转移指令(教材P102)3.分支程序编写循环结构程序设计1.循环控制指令LOOP、LOOPE/Z、LOOPNE/NZ以及他们的控制条件(对CF、ZF的判断)2.循环程序编写子程序设计1.子程序定义伪指令、调用指令、返回指令2.子程序设计中对于堆栈操作的要求第五章输入与输出中断1.中断向量表、中断向量的概念2.中断向量的修改3.中断的类型:软件中断、可屏蔽硬件中断、非屏蔽硬件中断;以及CPU队可屏蔽硬件中断和非屏蔽硬件中断的不同的响应条件4.8259的基本结构和工作原理5.8259的操作命令字:包括各个命令字的作用、格式、具体的操作6.软件中断与硬件中断的异同点第六章8254程序设计1.8254的基本结构和工作原理2.8254的命令字格式,以及对于8254各个计数器工作方式的设定8255程序设计1.8255的基本结构和工作原理2.8255的命令字格式,以及对于8255各端口的操作16550异步串行通信中,波特率的概念,数据帧的概念第七章简单外设LED的显示原理键盘的结构及扫描原理一些复习题习题一一、选择题1、8086CPU中程序计数器IP中存放的是。

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

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

解:即当从输入接口03F8H读入的数据满足ⅹⅹⅹⅹ1ⅹ1ⅹB时可以从接口03FBH输入 数据。 LEA SI,DATA MOV CX,200 NEXT: MOV DX,03F8H WAIT: IN AL,DX AND AL,0AH ;判断b1和b3位是否同时为1 CMP AL,0AH JNZ WAIT ;b1和b3位同时为1则读数据,否则等待 MOV DX,03FBH IN AL,DX MOV [SI],AL INC SI LOOP NEXT HLT 4.12 画图说明下列语句分配的存储空间及初始化的数据值。 (1)DATA1 DB ‘BYTE’,12,12H,2 DUP(0,?,3) (2)DATA2 DW 4 DUP(0,1,2),?,-5,256H 解: (1) 存储空间分配情况如图(a)所示。 9 (2) 存储空间分配情况如图(b)所示。
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偏移地址送寄存器SI,之后送SI的内容与DI的内容相加并将结果 送DI.指令执行后,(SI)=0017H;(DI)=(DI)+0017H. 4.3 试编写求两个无符号双子长数之和的程序. 两数分别在MEM1和MEM2单元中,和放 在SUM单元. 解: DSEG SEGMENT MEM1 DW 1122H,3344H MEM2 DW 5566H,7788H SUM DW 2 DUP(?) DSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG START: MOV AX,DSEG MOV DS,AX LEA BX,MEM1 LEA SI,MEM2 LEA DI,SUM MOV CL,2 CLC AGAIN: MOV AX,[BX] 2

计算机汇编语言第四章第五章答案

计算机汇编语言第四章第五章答案

本答案经本人简单作答、整理、修改(并是标准答案),仅供同学参考,欢迎同学提出宝贵意见。

4.10给定(BX)=637DH,(SI)=2A9BH,位移量D=7237H,试确定在以下各种寻址方式下的有效地址是什么答案:(1)立即寻址没有 IP的内容(2)直接寻址 7237H ;MOV AX,[7237H](3)使用BX的寄存器寻址没有 ;MOV AX,BX(4)使用BX的间接寻址 637DH ;MOV AX,[BX](5)使用BX的寄存器相对寻址 0D5B4H ;MOV AX,D[BX](6) 基址变址寻址 8E18H ;MOV AX,[BX][SI](7)相对基址变址 004FH ;MOV AX,D[BX][SI]4.11.求执行两条指令后,各标志位的状态MOV AL,91 ;执行后,(AL)=91=5BHADD AL,0BAH加法执行如下:0BA H 1011 1010+ 05B H 0101 1011115 H 1 0001 0101CF:显然最高位产生了进位(两个加数都是两位的,和却有三位),CF=1AF:低四位向高四位产生了进位(A+B产生进位),AF=1ZF:运算结果不为0,ZF=0SF:运算结果最高位为0(高四位:1H=0001B),SF=0OF:负+正=正(两个加数的符号位不同),没有溢出,OF=04-12(1)MOV AL,0F5H 正确(2)ADD [BX][BP],BX 错误,不能同时使用[BX][BP]进行寻址(3)CMP AL,100H 错误,AL为8位,100H大于8位,类型不匹配。

(4)TEST [BP],DL 正确(5)ADC 15,CL 错误,目的操作数不能是立即数(6)SUB [DI],DA_WORD 错误,两个操作数不能同时是存储器操作数。

(7)OR CH,CL 正确(8)MOV AL,1000H 错误,AL为8位,1000H为16位,类型不匹配。

(9)SAR 10H[DI],2 错误,AL为8位,移位多次必须CL中。

汇编语言与接口技术习题答案

汇编语言与接口技术习题答案

第3章 80X86的指令系统和寻址方式本章主要讲授:80X86的数据类型、寻址方式、指令格式、指令系统(数据传送指令、算术运算指令、逻辑运算指令、串操作数指令、控制转移指令、处理机指令和高级语言指令)和80486指令等。

通过本章的学习,注意下面几方面的内容:一、掌握80X86的数据类型;二、掌握80X86的寻址方式;三、掌握80X86的指令系统及它们的一些使用实例。

四、了解保护属性检查指令、高级语言指令以及Cache管理指令等。

习题精解1.已知DS=2000H,BX=0100H,SI=0002H,存储单元[20100H]~[20103H]依次存放12 3456 78H,[21200H]~[21203H]依次存放2A 4C B7 65H,说明下列每条指令执行后AX寄存器的内容。

(1)MOV AX,1200H(2)MOV AX,BX(3)MOV AX,[1200H](4)MOV AX,[BX](5)MOV AX,[BX+1100H](6)MOV AX,[BX + SI](7)MOV AX,[BX][SI+1100H]参考答案:根据物理地址形成公式:物理地址=段基址×16+有效地址,得:(1)1200H(2)0100H(3)4C2AH(4)3412H(5)4C2AH(6)7856H(7) 65B7H分析:本题主要考查点是数据寻址方式,寻址方式就是指令中用于说明操作数所在地址的方法,或者是寻找操作数有效地址的方法。

包括数据寻址和转移地址寻址两大类。

80X86的数据寻址方式总结如下:(1) 立即寻址方式操作数作为指令的一部分而直接写在指令中,这种操作数称为立即数,这种寻址方式就称为立即数寻址方式。

注:1、使用立即寻址的指令主要用来给寄存器赋初值,并且只能用于源操作数字段2、不能直接给段寄存器和标志寄存器赋予立即数。

例: MOV AL,5MOV AX,1234HMOV EAX,12345678H(2) 寄存器寻址方式操作数存放在指令规定的某个寄存器(如:对于16位操作数,寄存器可以是AX,BX,CX,DX,SI,DL,SP或BP;而对8位操作数,寄存器可以是AH,AL,BH,BL,CH,CL,DH 或DL)中。

ibmpc汇编语言第四章课后详细习题答案

ibmpc汇编语言第四章课后详细习题答案

4.1指出下列指令的错误:(1) MOV AH, BX ;寄存器类型不匹配(2) MOV [BX], [SI] ;不能都是存储器操作数(3) MOV AX, [SI][DI] ;[SI]和[DI]不能一起使用(4) MOV MYDAT [BX][SI], ES:AX ;AX寄存器不能使用段超越(5) MOV BYTE PTR [BX], 1000 ;1000超过了一个字节的范围(6) MOV BX, OFFSET MYDAT [SI] ;MYDAT [SI]已经是偏移地址,不能再使用OFFSET(7) MOV CS, AX ;CS不能用作目的寄存器(8) MOV ECX, AX ;两个操作数的数据类型不同答:见注释。

4.2下面哪些指令是非法的(假设OP1,OP2是已经用DB定义的变量)(1) CMP 15, BX ;错,立即数不能作为目的操作数(2) CMP OP1, 25(3) CMP OP1, OP2 ;错,不能都是存储器操作数(4) CMP AX, OP1 ;错,类型不匹配,应为CMP ax, word ptrop1答:见注释。

4.3假设下列指令中的所有标识符均为类型属性为字的变量,请指出下列哪些指令是非法的它们的错误是什么(1) MOV BP, AL ;错,寄存器类型不匹配(2) MOV WORD_OP [BX+4*3][DI], SP(3) MOV WORD_OP1, WORD_OP2 ;错,不能都是存储器操作数(4) MOV AX, WORD_OP1[DX] ;错,DX不能用于存储器寻址(5) MOV SAVE_WORD, DS(6) MOV SP, SS:DATA_WORD [BX][SI](7) MOV [BX][SI], 2 ;错,[BX][SI]未指出数据类型(8) MOV AX, WORD_OP1+WORD_OP2(9) MOV AX, WORD_OP1-WORD_OP2+100(10)MOV WORD_OP1, WORD_OP1-WORD_OP2答:见注释。

汇编与接口第四章作业

汇编与接口第四章作业

1.伪指令语句与硬指令语句的本质区别是什么?伪指令语句有什么主要作用?答:区别:伪指令语句是能执行的语句,硬指令语句是CPU可以执行的语句。

伪指令语句主要作用是为汇编程序提供解释说明,它仅仅是在汇编过程中告诉汇编程序如果进行汇编。

2.什么是标识符?汇编程序中标识符怎样组成?答:是用户自己定义的符号名。

在汇编程序中标识符有两种:标号标识符,用在指令语句中,后面跟冒号,表示程序入口的逻辑地址。

符号(或名字)标识符,用在伪指令语句中,后面不跟冒号,通常是定义一个变量,或说明变量类型。

标识符一般不超31个字符,数字及常规符号($、@、?等)不能打头,也不能使用保留字。

标识不区分大小写。

4.汇编语句有哪两种,每个语句有哪4部分组成?答:指令语句(又称执行语句)和伪指令语句(又称说明性语句)。

指令语句4部分包括,①标号:、②硬指令助记符、③操作数、④;注释。

伪指令语句4部分包括,①符号名、②伪指令助记符、③参数、④;注释。

5.汇编程序开发有哪4个步骤?分别利用什么程序完成,产生什么输出文件?答:①编辑。

使用文本编辑器。

产生汇编源程序文件: 文件名.ASM。

源文件是文本文件。

②汇编。

使用汇编程序,如MASM或ML,排除程序中的语法错误。

产生目标文件:文件名.OBJ。

目标文件是二进制文件,是不能执行的文件。

③连接。

使用LINK。

产生可执行文件:文件名.EXE.④调试。

使用DEBUG。

本身不产生文件,是对连接产生的可执行进行调试,排除程序中的算法错误,保证可执行文件的正确性。

7.假设MYWORD是一个字变量,MYBYTE1和MYBYTE2是两个字节变量,指出下列语句中的错误原因。

(1) MOV BYTE PTR[BX], 1000答:数据类型不匹配,目的地址单元是字节单元,1000大于255。

无法存放。

(2) MOV BX, OFFSET[SI]答:OFFSET后只能跟标识符。

(3) CMP MYBYTE1, MYBYTE2答:CMP的两个操作数不能同时在存储器中。

汇编语言与接口技术课后答案(1-8章完整版)-王让定朱莹编(下载后可查看剩余几章内容)

汇编语言与接口技术课后答案(1-8章完整版)-王让定朱莹编(下载后可查看剩余几章内容)

第一章(下载后可查看)第二章1.8086/8088 CPU 的地址总线有多少位?其寻址范围是多少?答:8086/8088 CPU 的地址总线共20位, 最大可寻址1MB空间。

2.8086/8088 CPU分为哪两个部分?各部分主要由什么组成?答:8086/8088 CPU 分为总线接口部件(BIU)和执行部件(EU)两个部分。

其中BIU包括:4 个16 位的段地址寄存器(CS、DS、SS、ES);1个16位的指令指针寄存器IP;1个20位的地址加法器;指令队列寄存器;内部寄存器;输入输出总线控制逻辑;EU包括:4 个16 位的通用数据寄存器(AX、BX、CX、DX);4个16位的专用寄存器(BP、SP、SI、DI);1个16位的标志寄存器FR;4. 8086/8088 CPU 中有几个通用寄存器?有几个变址寄存器?有几个指针寄存器?通常哪几个寄存器亦可作为地址寄存器使用?答:8086/8088 CPU 中共有:8个16位的通用寄存器AX、BX、CX、DX 、BP、SP、SI、DI;2 个变址寄存器SI 、DI;2 个指针寄存器BP、SP;其中BX、BP、SI 、DI 亦可作地址寄存器。

5.8086/8088 CPU 中有哪些标志位?它们的含义和作用如何?答:8086/8088 CPU中共有9个标志位,其中DF、IF 和TF为控制标志位,其余6 个为状态标志位。

它们的含义和作用如下所示:CF(Carry Flag) 进位标志: 若算术运算的结果产生了进位或借位( 对字节操作最高位是D7位;对字操作最高位是D15位),则CF=1,否则CF=0。

PF(Parity/Even Flag) 奇偶标志:如果运算结果中含有偶数个1, 则PF=1,否则PF=0。

此标志位主要用于数据通信中, 检测数据传送有无出错。

AF(Auxiliary Carry Flag) 辅助进位标志: 用于反映一个字节( 字的低字节) 的低4位向高4位有无进位(借位)的情况,有进(借)位时,AF=1,否则AF=0。

第3、4章作业(汇编部分)

第3、4章作业(汇编部分)

5
10、设(DS)=1000H, (ES)=1500H, (SS)=2000H, (BX)=0010H, (BP)=00A0H, (SI)=0100H,指 出下列操作数中源操作数的寻址方式,并计 算其物理地址。
(4)MOV AX, SS:[BX]
寄存器间接寻址方式
物理地址= (SS) ×16+ (BX) = 2000H×16+ 0010H=20010H
(4) MOV AX, [BX+SI]: 源操作数的寻址方式:基址变址寻址方式; EA = (BX) + (SI) = 4200H;
(5) MOV AX, X[BX][SI] 源操作数的寻址方式: 相对基址变址寻址方式; EA = (BX) + (SI) + X = 4500H;
(6) MOV AX, BX 源操作数的寻址方式:寄存器寻址方式;
(2) MOV AX, X 源操作数寻址方式: 直接寻址方式;
EA = 300H;
(3) MOV AX, [BX] 源操作数寻址方式: 寄存器间接寻址方式;
EA = (BX) = 3000H;
2020年1月21日星期二
3
8、假定(BX)=3000H,(SI)=1200H,(X)=300H, 指出下列操作数中源操作数的寻址方式,同时 写出各指令源操作数的地址。
2020年1月21日星期二
6
10、设(DS)=1000H, (ES)=1500H, (SS)=2000H, (BX)=0010H, (BP)=00A0H, (SI)=0100H,指 出下列操作数中源操作数的寻址方式,并计 算其物理地址。
(7) MOV AX, [BX][SI]
基址变址寻址方式

汇编语言程序设计CH4练习参考答案

汇编语言程序设计CH4练习参考答案

第四章汇编语言程序格式练习参考答案1.指令下列指令的错误(1) MOV AH,BX (源操作数为字数据,目的操作数为字节数据)(2) MOV [BX],[SI] (两操作数都是存储器操作数)(3) MOV AX,[SI][DI] (基址变址寻址方式中,必须有一个是基址寄存器而另一个是变址寄存器)(4) MOV MYDAT[BX][SI],ES:AX (寄存器寻址不存在段超越)(5) MOV BYTE PTR[BX],1000 (目的操作数为字节类型,1000超出字节数表示范围)(6) MOV BX,OFFSET MYDAT[SI] (OFFSET只能作用于简单变量,这里可以将MOV换为LEA)(7) MOV CS,AX (MOV指令的目的操作数不允许是CS寄存器)(8) MOV ECX,AX (源操作数为字数据,目的操作数为双字数据)2.(1)非法,目的操作数不能是立即数(2)合法(3)非法两个操作数不能同时为内存操作数(4)非法两操作数的类型不匹配(源操作数为字节数据,目的操作数为字数据)3.(1)非法,操作数类型不同(源操作数为字节数据,目的操作数为字数据)(2)合法。

(3)非法,两操作数都是存储器操作数(4)非法,寄存器相对寻址中的16位寄存器只允许BX、BP、SI、DI(5)合法。

(6)合法。

(7)非法,由立即数,故目的操作数必须说明操作数类型,因此在作数为必须说明存储器的类型(8)非法,两个内存单元地址相加没有意义(9)合法。

(10)合法。

4.(1)错误之处:两操作数都是存储器操作数(2)错误之处:两操作数类型不同(源操作数为字数据,目的操作数为字节数据)(3)一般来说,直接用标号LAB作为转移指令的操作数就行了。

如果想以内存LAB[SI]作相对寻址,实现间接转移,那在LAB[SI]前面应加上WORD PTR(或DWORD PTR),以表明段内间接转移或段间间接转移,但汇编中常把缺省情况认为是WORD PTR,因此,在很多的MASM版本中,这条指令都认为是正确的指令。

汇编与接口课后作业答案

汇编与接口课后作业答案

QQ有奖活动,玩转QQ第2章中央处理器1.8086/8088 CPU有两种工作模式,即最小模式和最大模式,它是由MN#/MX# 决定的。

2.加电复位后,8086 CPU从0FFFFH 地址取第一条指令并执行。

3.80286有24根地址线,它的可寻址空间为16MB 。

第3章80X86指令系统1.在寄存器间接寻址方式中,操作数在主存单元中。

2.算术运算类指令的寻址和程序控制类指令的寻址,其不同点在于:前者是操作数寻址,后者是指令寻址。

3.堆栈和队列不同,堆栈是按先进后出的方式工作的。

4.将寄存器BX的内容求反的正确操作是:XOR BX , 0FFFFH NOT BX注意:NEG BX是求BX的相反数5.循环指令LOOPNZ结束循环的条件是CX=0或者ZF=1。

注意:课本上该题目的选项都不对6.测试BL寄存器内容是否与数据4FH相等,若相等则转L1处执行,正确的程序段是:XOR BL , 4FH JZ L1 若不是选择题,则可以直接使用CMP指令比较。

7.假定(DS)=2000H,(SS)=1000H,(DI)=0500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,请指出下列指令的源操作数字段是什么寻址方式?有效地址是多少?物理地址是多少?1)MOV AX , [100H]直接寻址方式EA=100H DS段PA=2000H×10H+100H=20100H2)MOV AL , [BX][SI]基址变址寻址DS段EA=100H+00A0H=1A0HPA=2000H×10H+1A0H=201A0H3)MOV AX , [BX]寄存器间接寻址DS段EA=100HPA=2000H×10H+100H=20100H4)MOV AX , [BP] QQ有奖活动,玩转QQ寄存器间接寻址SS段EA=10HPA=1000H×10H+10H=10010H5)MOV AX , [DI]寄存器间接寻址DS段EA=500HPA=2000H×10H+500H=20500H6)MOV AX , [BX+10]寄存器相对寻址DS段EA=100H+10=10AHPA=2000H×10H+10AH=2010AH8.下列程序段执行后,将各指令的执行结果填空。

第3、4章作业(汇编部分)

第3、4章作业(汇编部分)

2021年7月31日星期六
22
16、写出实现下列功能的指令或程序段。
(8)将A单元中的内容与B单元中的内容相乘后,结果保存中 在C1单元的连续两个字节中。
5
10、设(DS)=1000H, (ES)=1500H, (SS)=2000H, (BX)=0010H, (BP)=00A0H, (SI)=0100H,指 出下列操作数中源操作数的寻址方式,并计 算其物理地址。
(4)MOV AX, SS:[BX]
寄存器间接寻址方式
✓物理地址= (SS) ×16+ (BX) = 2000H×16+ 0010H=20010H
(6) XCHG DS , AX ✓ XCHG指令中的操作数不能为段寄存器;
2021年7月31日星期六
9
11、指出下列指令的错误原因
(7)SHL AX , 5
✓ 若移位的位数大于1,则使用CL在指令中表示移位次数;
(8)XCHG [BX] , [SI]
✓ 两个操作数同时为存储单元寻址方式,且两个数据的类型不 确定;
(5)MOV AX, [BP]
寄存器间接寻址方式
✓物理地址=(SS)×16+ (BP) = 2000H×16+ 00A0H=200A0H
(6)MOV AX, [BX]+100H 寄存器相对寻址方式
✓物理地址= DS ×16+ (BX) +100H
= 1000H×16+ 0010H +100H =10110H
(4)MOV AX , [BP] ✓ PA = (SS)×16+(BP) = 20200H ✓ (AX)=5030H
(5 )MOV AX,100H+[BX] ✓PA= (DS)×16+100H+(BX) = 10000H+100H+0100H = 10200H
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.伪指令语句与硬指令语句的本质区别是什么?伪指令语句有什么主要作用?
答:区别:伪指令语句是能执行的语句,硬指令语句是CPU可以执行的语句。

伪指令语句主要作用是为汇编程序提供解释说明,它仅仅是在汇编过程中告诉汇编程序如果进行汇编。

2.什么是标识符?汇编程序中标识符怎样组成?
答:是用户自己定义的符号名。

在汇编程序中标识符有两种:标号标识符,用在指令语句中,后面跟冒号,表示程序入口的逻辑地址。

符号(或名字)标识符,用在伪指令语句中,后面不跟冒号,通常是定义一个变量,或说明变量类型。

标识符一般不超31个字符,数字及常规符号($、@、?等)不能打头,也不能使用保留字。

标识不区分大小写。

4.汇编语句有哪两种,每个语句有哪4部分组成?
答:指令语句(又称执行语句)和伪指令语句(又称说明性语句)。

指令语句4部分包括,①标号:、②硬指令助记符、③操作数、④;注释。

伪指令语句4部分包括,①符号名、②伪指令助记符、③参数、④;注释。

5.汇编程序开发有哪4个步骤?分别利用什么程序完成,产生什么输出文件?
答:①编辑。

使用文本编辑器。

产生汇编源程序文件: 文件名.ASM。

源文件是文本文件。

②汇编。

使用汇编程序,如MASM或ML,排除程序中的语法错误。

产生目标文件:文件名.OBJ。

目标文件是二进制文件,是不能执行的文件。

③连接。

使用LINK。

产生可执行文件:文件名.EXE.
④调试。

使用DEBUG。

本身不产生文件,是对连接产生的可执行进行调试,排除程序中的算法错误,保证可执行文件的正确性。

7.假设MYWORD是一个字变量,MYBYTE1和MYBYTE2是两个字节变量,指出下列语句中的错误原因。

(1) MOV BYTE PTR[BX], 1000
答:数据类型不匹配,目的地址单元是字节单元,1000大于255。

无法存放。

(2) MOV BX, OFFSET[SI]
答:OFFSET后只能跟标识符。

(3) CMP MYBYTE1, MYBYTE2
答:CMP的两个操作数不能同时在存储器中。

(4) MOV AL, MYBYTE1+MYBYTE2
答:运算符只能对常数进行操作,不能对变量进行操作。

(5) SUB AL, MYWORD
答:数据类型不匹配,AL是8位的,MYWORD是16位变量。

(6) JNZ MYWORD
答:MYWORD是变量,其指的单元中存放的是操作数,不能用做跳转入口。

8.OPRL是个常数,请问下列语句中两个AND操作有什么不同?
AND AL, OPRL AND 0FEH
答:第一个AND是指令语句,在程序运行时才执行,第二个AND是逻辑运算符,
是在汇编时就对两个常量完成的关系运算。

相关文档
最新文档