当前位置:文档之家› 汇编语言第八章答案

汇编语言第八章答案

汇编语言第八章答案
汇编语言第八章答案

8.1 写出分配给下列中断类型号在中断向量表中的物理地址。

(1) INT 12H (2) INT 8

答:(1) 中断类型号12H在中断向量表中的物理地址为00048H、00049H、0004AH、0004BH;

(2) 中断类型号8在中断向量表中的物理地址为00020H、00021H、00022H、00023H。

8.2 用CALL指令来模拟实现INT 21H显示字符T的功能。

答:MOV AH, 2

MOV DL, ‘T’

PUSH DS

PUSHF ;因中断服务程序的返回指令是IRET,而不是RET

MOV BX, 0

MOV DS, BX

CALL DWORD PTR[21H*4] ;用CALL指令调用21H的中断服务程序

POP DS

8.3 写出指令将一个字节数据输出到端口25H。

答:指令为:OUT 25H, AL

8.4 写出指令将一个字数据从端口1000H输入。

答:指令为:MOV DX, 1000H

IN AX, DX

8.5 假定串行通讯口的输入数据寄存器的端口地址为50H,状态寄存器的端口地址为51H,状态寄存器各位为1时含义如右图所示,请编写一程序:输入一串字符并存入缓冲区BUFF,同时检验输入的正确性,如有错则转出错处理程序ERROR_OUT。

输入数据准备好

7 6 5 4 3 2 1 0

输出寄存器空

奇偶校验错

溢出错

格式错

8.3 状态寄存器各位含义

答:程序段如下:

MOV DI, 0

MOV CX, 80 ;最多输入80个字符

BEGIN: IN AL, 51H ;查询输入是否准备好?

TEST AL, 02H

JZ BEGIN

IN AL, 50H ;输入数据并存入缓冲区BUFF

MOV BUFF[DI], AL

INC DI

IN AL, 51H ;判断是否有错?

TEST AL, 00111000B

JNZ ERROR_OUT

LOOP BEGIN

8.6 试编写程序,它轮流测试两个设备的状态寄存器,只要一个状态寄存器的第0位为1,则就与其相应的设备输入一个字符;如果其中任一状态寄存器的第3位为1,则整个输入过程结束。两个状态寄存器的端口地址分别是0024H和0036H,与其相应的数据输入寄存器的端口地址则为0026H和0038H,输入字符分别存入首地址为BUFF1和BUFF2的存储区中。

答:程序段如下:

MOV DI, 0

MOV SI, 0

BEGIN: IN AL, 24H

TEST AL, 08H ;查询第一个设备的输入是否结束?

JNZ EXIT

TEST AL, 01H ;查询第一个设备的输入是否准备好?

JZ BEGIN1

IN AL, 26H ;输入数据并存入缓冲区BUFF1

MOV BUFF1[DI], AL

INC DI

BEGIN1: IN AL, 36H

TEST AL, 08H ;查询第二个设备的输入是否结束

JNZ EXIT

TEST AL, 01H ;查询第二个设备的输入是否准备好?

JZ BEGIN

IN AL, 38H ;输入数据并存入缓冲区BUFF2

MOV BUFF2[SI], AL

INC SI

JMP BEGIN

EXIT: ┇

8.7 假定外部设备有一台硬币兑换器,其状态寄存器的端口地址为0006H,数据输入寄存器的端口地址为0005H,数据输出寄存器的端口地址为0007H。试用查询方式编制一程序,该程序作空闲循环等待纸币输入,当状态寄存器第2位为1时,表示有纸币输入,此时可从数据输入寄存器输入的代码中测出纸币的品种,一角纸币的代码为01,二角纸币为02,五角纸币则为03。然后程序在等待状态寄存器的第3位变为1后,把应兑换的五分硬币数(用16进制表示)从数据输出寄存器输出。

答:程序段如下:

BEGIN: IN AL, 06H ;查询是否有纸币输入?

TEST AL, 04H

JZ BEGIN

IN AL, 05H ;测试纸币的品种

CMP AL, 01H ;是一角纸币吗?

JNE NEXT1

MOV AH, 02 ;是一角纸币,输出2个5分硬币

JMP NEXT

NEXT1: CMP AL, 02H ;是二角纸币吗?

JNE NEXT2

MOV AH, 04 ;是二角纸币,输出4个5分硬币

JMP NEXT

NEXT2: CMP AL, 03H ;是五角纸币吗?

JNE BEGIN

MOV AH, 10 ;是五角纸币,输出10个5分硬币

NEXT: IN AL, 06H ;查询是否允许输出5分硬币?

TEST AL, 08H

JZ NEXT

MOV AL, AH ;输出5分硬币

OUT 07H, AL

JMP BEGIN

8.8 给定(SP)=0100H,(SS)=0300H,(FLAGS)=0240H,以下存储单元的内容为(00020)=0040H,(00022)=0100H,在段地址为0900及偏移地址为00A0H的单元中有一条中断指令INT 8,试问执行INT 8指令后,SP,SS,IP,FLAGS的内容是什么?栈顶的三个字是什么?

答:执行INT 8指令后,(SP)=00FAH,(SS)=0300H,(CS)=0100H,(IP)=0040H,(FLAGS)=0040H 栈顶的三个字是:原(IP)=00A2H,原(CS)=0900H,原(FLAGS)=0240H

8.9 类型14H的中断向量在存储器的哪些单元里?

答:在0000:0050H,0000:0051H,0000:0052H,0000:0053H四个字节中。

8.10 假定中断类型9H的中断处理程序的首地址为INT_ROUT,试写出主程序中为建立这一中断向量而编制的程序段。

答:程序段如下:

MOV AL, 1CH ;取原中断向量,并保护起来

MOV AH, 35H

INT 21H

PUSH ES

PUSH BX

PUSH DS

MOV AX, SEG INT_ROUT

MOV DS, AX

MOV DX, OFFSET INT_ROUT

MOV AL, 09H

MOV AH, 25H ;设置中断向量功能调用

INT 21H

POP DS

POP DX ;还原原中断向量

POP DS

MOV AL, 1CH

MOV AH, 25H

INT 21H

8.11 编写指令序列,使类型1CH的中断向量指向中断处理程序SHOW_CLOCK。

答:程序段如下:

MOV AL, 1CH

MOV AH, 35H ;取中断向量功能调用,取原中断向量

INT 21H

PUSH ES

PUSH BX

PUSH DS

MOV AX, SEG SHOW_CLOCK

MOV DS, AX

MOV DX, OFFSET SHOW_CLOCK

MOV AL, 1CH

MOV AH, 25H ;设置中断向量功能调用

INT 21H

POP DS

POP DX

POP DS

MOV AL, 1CH

MOV AH, 25H ;设置中断向量功能调用,还原原中断向量

INT 21H

8.12 如设备D1,D2,D3,D4,D5是按优先级次序排列的,设备D1的优先级最高。而中断请求的次序如下所示,试给出各设备的中断处理程序的运行次序。假设所有的中断处理程序开始后就有STI指令。

(1) 设备D3和D4同时发出中断请求。

(2) 在设备D3的中断处理程序完成之前,设备D2发出中断请求。

(3) 在设备D4的中断处理程序未发出中断结束命令(EOI)之前,设备D5发出中断请求。

(4) 以上所有中断处理程序完成并返回主程序,设备D1,D3,D5同时发出中断请求。

答:各设备的中断处理程序的运行次序是:INT_D3,INT_D2嵌套INT_D3,INT_D4,INT_D5;INT_D1,INT_D3,INT_D5。

8.13 在8.12题中假设所有的中断处理程序中都没有STI指令,而它们的IRET指令都可以由于FLAGS出栈而使IF置1,则各设备的中断处理程序的运行次序应是怎样的?

答:各设备的中断处理程序的运行次序是:INT_D3,INT_D2,INT_D4,INT_D5;

INT_D1,INT_D3,INT_D5。

8.14 试编制一程序,要求测出任一程序的运行时间,并把结果打印出来。

答:程序段如下:

TITLE TEST_TIME.EXE ;测试程序运行时间程序

;******************************************

DSEG SEGMENT ;定义数据段

COUNT DW 0 ;记录系统时钟(18.2次中断/秒)的中断次数

SEC DW 0 ;存放秒钟数

MIN DW 0 ;存放分钟数

HOURS DW 0 ;存放小时数

PRINTTIME DB 0DH, 0AH, ‘The time of exection program is:’CHAR_NO EQU $- PRINTTIME

DSEG ENDS ;以上定义数据段

;******************************************

CSEG SEGMENT ;定义代码段

MAIN PROC FAR

ASSUME CS: CSEG, DS: DSEG

START: PUSH DS ;设置返回DOS

SUB AX, AX

PUSH AX

MOV AX, DSEG

MOV DS, AX ;给DS赋值

MOV AL, 1CH ;取原来的1CH中断向量

MOV AH, 35H

INT 21H

PUSH ES ;保存原来的1CH中断向量

PUSH BX

PUSH DS ;设置新的1CH中断向量

MOV AX, SEG CLINT

MOV DS, AX

MOV DX, OFFSET CLINT

MOV AL, 1CH

MOV AH, 25H

INT 21H

POP DS

IN AL, 21H ;清除时间中断屏蔽位并开中断

AND AL, 0FEH

OUT 21H, AL

STI

┇;要求测试时间的程序段

POP DX ;恢复原来的1CH中断向量

POP DS

MOV AL, 1CH

MOV AH, 25H

INT 21H

CALL PRINT ;打印输出测试时间

RET ;返回DOS

MAIN ENDP

;---------------------------------------------------------------------------------- CLINT PROC NEAR ;中断服务子程序

PUSH DS

PUSH BX

MOV BX, SEG COUNT

MOV DS, BX

LEA BX, COUNT

INC WORD PTR [BX] ;记录系统时钟的中断次数单元+1

CMP WORD PTR [BX],18 ;有1秒钟吗?

JNE TIMEOK

CALL INCTEST ;有1秒钟,转去修改时间

ADJ: CMP HOURS, 12 ;有12小时吗?

JLE TIMEOK

SUB HOURS, 12 ;有12小时,将小时数减去12

TIMEOK: MOV AL, 20H ;发中断结束命令

OUT 20H, AL

POP BX

POP DS

IRET

CLINT ENDP ;CLINT中断服务子程序结束

;---------------------------------------------------------------------------------- INCTEST PROC NEAR ;修改时间子程序

MOV WORD PTR [BX], 0 ;中断次数单元或秒单元或分单元清0 ADD BX, 2

INC WORD PTR [BX] ;秒单元或分单元或时单元+1

CMP WORD PTR [BX],60 ;有60秒或60分吗?

JLE RETURN

CALL INCTEST ;先修改秒单元,再修改分单元,再修改时单元RETURN: RET

INCTEST ENDP ;INCTEST子程序结束

;---------------------------------------------------------------------------------- PRINT PROC NEAR ;打印输出子程序

LEA BX, PRINTTIME ;打印输出PRINTTIME信息

MOV CX, CHAR_NO

ROTA TE: MOV DL, [BX]

MOV AH, 05H

INT 21H

INC BX

LOOP ROTATE

MOV BX, HOURS ;打印时间的小时数

CALL BINIDEC ;调二进制转换为10进制并打印输出子程序MOV DL, ‘:’ ;打印输出冒号‘:’

MOV AH, 05H

INT 21H

MOV BX, MIN ;打印时间的分钟数

CALL BINIDEC

MOV DL, ‘:’

MOV AH, 05H

INT 21H

MOV BX, SEC ;打印时间的秒钟数

CALL BINIDEC

RET

PRINT ENDP ;PRINT子程序结束

;---------------------------------------------------------------------------------- BINIDEC PROC NEAR ;二进制转换为10进制子程序

MOV CX, 10000D

CALL DEC _DIV ;调除法并打印输出子程序

MOV CX, 1000D

CALL DEC _DIV

MOV CX, 100D

CALL DEC _DIV

MOV CX, 10D

CALL DEC _DIV

MOV CX, 1D

CALL DEC _DIV

RET

BINIDEC ENDP ;BINIDEC子程序结束

;---------------------------------------------------------------------------------- DEC_DIV PROC NEAR ;除法并打印输出子程序

MOV AX, BX

MOV DX, 0

DIV CX

MOV BX, DX ;余数保存在(BX)中作下一次的除法

MOV DL, AL ;商(在00H~09H范围内)送(DL)

ADD DL, 30H ;转换为0~9的ASCII码

MOV AH, 05H ;打印输出

INT 21H

RET

DEC_DIV ENDP ;DEC_DIV子程序结束

;---------------------------------------------------------------------------------- CSEG ENDS ;以上定义代码段

;******************************************

END START ;汇编语言源程序结束

汇编语言第二章答案

2.1 在80x86微机的输入/输出指令中,I/O端口号通常是由DX寄存器提供的,但有时也可以在指令中直接指定00~FFH的端口号。试问可直接由指令指定的I/O端口数。 答:可直接由指令指定的I/O端口数为256个。 2.2 有两个16位字1EE5H和2A3CH分别存放在80x86微机的存储器的000B0H和000B3H单元中,请用图表示出它们在存储器里的存放情况。 答:存储器里的存放情况如右下图所示: 000B0H E5H 000B1H 1EH 000B2H 000B3H 3CH 000B4H 2AH 2.3在IBM PC机的存储器中存放信息如右下图所示。试读出30022H和30024H字节单元的内容,以及30021H和30022H字单元的内容。 30020H 12H 30021H 34H 30022H ABH 30023H CDH 30024H EFH 答:30022H字节单元的内容为ABH;30024H字节单元的内容为EFH。30021H字单元的内容为AB34H;30022H字单元的内容为CDABH。 2.4 在实模式下,段地址和偏移地址为3017:000A的存储单元的物理地址是什么?如果段地址和偏移地址是3015:002A和3010:007A呢? 答:3017:000A、3015:002A和3010:007A的存储单元的物理地址都是3017AH。 2.5 如果在一个程序开始执行以前(CS)=0A7F0H,(如16进制数的最高位为字母,则应在其前加一个0) (IP)=2B40H,试问该程序的第一个字的物理地址是多少? 答:该程序的第一个字的物理地址是0AAA40H。 2.6在实模式下,存储器中每一段最多可有10000H个字节。如果用调试程序DEBUG的r命令在终端上显示出当前各寄存器的内容如下,请画出此时存储器分段的示意图,以及条件标志OF、SF、ZF、CF的值。 C>debug -r AX=0000 BX=0000 CX=0079 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=10E4 ES=10F4 SS=21F0 CS=31FF IP=0100 NV UP DI PL NZ NA PO NC 答:此时存储器分段的示意图如右图所示。OF、SF、ZF、CF的值都为0。 2.7 下列操作可使用那些寄存器?

汇编语言试题及参考答案

汇编语言试题及参考答案 一,填空题 1.ZF标志位是标志结果是否为零的,若结果,ZF为( 1 ),否则ZF为( 0 ).当ZF为1时,SF为( 0 ) 2.标号可以有两种类型属性.它们是( )和( ) 3.8位无符号整数的表示范围为0--255,写成16进制形式为( ),8位有符号整数的表示范围为-128--+127,写成16进制形式为( ) 4.伪指令DB,GROUP 和NAME 三个标号名字域必须有名字的是( ),不得有名字的是( ),可有可无名字的是( ). 5.循环程序通常由( )( )( )和循环结果外理四部分构成 6.在数值不达式中,各种运算符可可混合使用,其优先次序规则*,/( )于+,-;XOR,OR( )于AND,LT( )于GT 7. 宏指令定义必须由伪指令( )开始,伪指令( )结束,两者之间的语句称为( ) 8.调用程序与子程序之间的参数传递方法有四种,即堆栈法( )( )( ) 9.分别用一条语句实现下述指明的功能 (1)栈顶内容弹出送字变量AYW( ) (2)双字变量AYD存放的地址指针送ES和SI( ) (3)变量AY2类型属性送AH( ) (4)不允许中断即关中断( ) (5)将字符串'HOW ARE YOU!'存入变量AYB( ) (6)子程序返回调用程序( ) (7)地址表达式AYY[4]的偏移地址送字变量ADDR( ) (8)AX的内容加1,要求不影响CF( ) (9)BX的内容加1,要求影响所有标志位( ) (10)若操作结果为零转向短号GOON( ) 二,单选题 1.IBM PC微机中,有符号数是用( )表示的 1.原码 2.补码 3.反码 4.BCD码 2.把汇编源程序变成代码程序的过程是( ) 1.编译 2.汇编 3.编辑 4.链接

第4章汇编语言程序设计.

第四章习题集 一、判断 (正确的在括号画“√” , 错误的画“×” 1. 汇编语言程序语言必须由四部分组成。 ( 2. 汇编语言源程序中所使用的变量,必须在代码段中先定义,后引用。 (错 3. 在汇编语言中,一般伪指令语句放在代码段中 (错 4. 逻辑操作符 AND 、 OR 、 XOR 或 NOT ,只能用于数字表达式。 ( 错 5. 符号定义语句不占内存单元,变量定义语句占内存单元。 ( 6. 汇编语言源程序中至少有一个代码段。 ( 对 7. 伪指令是指示性语句 , 不产生机器目标代码。( √ 8. 伪指令BV AR :DB ‘ ABCD ’ , 200 DUP(?是合法伪指令。 9. 伪指令 DAT1 DB 7, 8, 9, 10 与 DA T1 DW 07H, 08H , 09H , 0AH 所预置的数据是一样的。 10. 8086CPU 的中断向量表共占有 1024个字节 (00000H -003FFH , 所以共有1024个中断。 [ ] 二、单项选择题 1. 用高级语言编写的程序(C 。 A 、只能在基本种计算机上运行 B 、无需经过编译或解释,即可被计算机直接执行 C 、具有通用性和可移植性 D 、几乎不占用内存空间 2. 一般地,我们将计算机指令的集合称为(B 。 A . 机器语言 B. 汇编语言 C. 模拟语言 D. 仿真语言

3. 我们通常所说的“裸机”指的是(C 。 A. 只装备有操作系统的计算机 B. 不带输入输出设备的计算机 C. 未装备任何软件的计算机 D. 计算机主机暴露在外 4. 计算机的软件系统一般分为(C 两大部分。 A. 系统软件和应用软件 B. 操作系统和计算机语言 C. 程序和数据 D. DOS 和 Windows 5. 计算机系统软件中的汇编程序是一种 ( C 。 A. 汇编语言程序 B. 编辑程序 C. 翻译程序 D. 将高级语言转换成汇编程序的程序 6. 假设 V1和 V2是用 DW 定义的变量,下列指令中正确的是:A A. MOV V1,20H B. MOV V1, V2 C. MOV AL,V1 D. MOV 2000H , V2 7. PC 机所使用的标准键盘向主机发送的代码是 A A . ASCII 码 B . 扫描码 C. BCD 码 D. 格雷码 8. 8086CPU 中断号为 8的中断矢量存放在(C 。 A. 0FFFFH :0008H B. 0000H :0008H C. 0000H :0020H D. 0020H :0000H 9. 已知变量 VAR 为字型,则 TYPE VAR=(B 。 A 、 1 B 、 2 C 、 3 D 、 4

最新有答案---14-15-1-汇编语言复习资料

汇编语言复习资料 第一部分选择题 第一章基础知识 1.数组array在数据段的定义如下所示,在内存空间的存储值是什么,选出正确的一 项(B ) array db 1,‘1’,0AH,‘A’,-2 A、1H 1H 0AH 0AH 82h B、1H 31H 0AH 41H FEH C、1 1 0A 0A 12h D、31H 31H 41H 41H 02h 2.debug命令中显示内存单元内容的命令是( B ) A、a B、d C、e D、r 3.debug命令中反汇编命令是(D ) A、q B、g C、t D、u 4.在DEBUG下,修改寄存器AX的命令是___B_。 A.U AX B.R AX C.R D.A AX 5.从200H开始反汇编的DEBUG命令是A____。 A.U 200 B.R 200 C.D 200 D.U 6.仅查看用户程序中数据段10号存储单元的DEBUG命令是A____。 A.D DS:A A B.D DS:A C.D DS:10 10 D.D DS:10 7.计算机编程语言的发展顺序是(A ) A、机器语言汇编语言高级语言 B、汇编语言机器语言高级语言 C、高级语言汇编语言机器语言 D、高级语言机器语言汇编语言 8.将124转换成十六进制数的结果是_A____。 A.7CH B.7DH C.7EH D.7BH 9.计算机对字符、符号采用统一的二进制编码。其编码采用的是_C_____。 A.BCD码B.二进制码C.ASCII D.十六进制码 第二章80x86计算机组织 10.对汇编语言源程序进行翻译的程序是__B___。 A.连接程序B.汇编程序C.编译程序D.目标程序 11.在汇编语言中,能够翻译成二进制代码的指令是__A__。 A.汇编指令B.伪指令C.机器指令D.宏指令

汇编语言王爽第二版课后答案

第一章基础知识 检测点(第8页) ---------------------- (1) 13 (2) 1024,0,1023 (3) 8192,1024 (4) 2^30,2^20,2^10 (5) 64,1,16,4 (6) 1,1,2,2,4 (7) 512,256 (8) 二进制 注意: 1.第4题中的符号'^'指求幂运算(如: 2^30指2的30次方) 第二章寄存器(CPU工作原理) 检测点(第18页) ---------------------- (1)写出每条汇编指令执行后相关寄存器中的值。第一空:F4A3H 第二空:31A3H 第三空:3123H 第四空:6246H 第五空:826CH 第六空:6246H 第七空:826CH 第八空:04D8H 第九空:0482H 第十空:6C82H 第十一空:D882H 第十二空:D888H 第十三空:D810H 第十四空:6246H (2)只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。 解答如下: mov ax,2 add ax,ax add ax,ax add ax,ax 检测点(第23页) ---------------------- (1)00010H,1000FH (2)1001H,2000H 第2题说明: 因为段的起始地址要为16的倍数。所以当段地址小于1001H或大于2000H时CPU都无法寻到。 检测点(第33页) ----------------------答:CPU修改了4次IP的值。 情况如下: 第1次:执行完mov ax,bx后 第2次:执行完sub ax,ax后 第3次:读入jmp ax后 第4次:执行完jmp ax后 最后IP的值为0 实验1 查看CPU和内存,用机器指令和汇编指令编程(第33页) ----------------------------------------------------- 1.预备知识:Debug的使用 <此部分略> 2.实验任务(第43页) (1) <此部分略> (2) <此部分略> (3) 通过DEBUG中的D命令查看到主板的生产日期[以月、日、年,分隔符为'/'的格式]存储在内存ffff:0005~ffff:000C(共8个字节单元中)处。此生产日期不能被改变,因为其具有‘只读’属性。 (4) 通过向内存中的显存写入数据,使计算机根据写入的数据进行ASCII转换,并将转换后且可打印的字符输出到屏幕上。<注:关于显存的详细讨论不在此题范围> 第三章寄存器(内存访问) 检测点(第52页) ---------------------- (1)(题目:略) 第一空:2662H 第二空:E626H 第三空:E626H 第四空:2662H 第五空:D6E6H 第六空:FD48H 第七空:2C14H 第八空:0000H 第九空:00E6H 第十空:0000H 第十一空:0026H 第十二空:000CH 提示:此题可在DEBUG中利用E命令在本机上按照题目中所给出的内存单元及其数据进行相应地修改,然后再用A命令进行写入(题目中所给出的)相应的汇编指令,最后再进行T命令进行逐步执行,以查看相应结果。

汇编语言课后习题答案---郑晓薇(整理后的)

习题一 1 无符号数: 11010011=211=D3H,01110111=119=77H, 10000011=131=83H, 00101111=47=2FH, 10101010=170=AAH 带符号数:11010011= -45=D3H,01110111=+119=77H,10000011= -125=83H, 00101111=+47=2FH,10101010= -86=AAH 2 5E8AH,0BE6H,3DEH,4940H 3 00011101+00110101=01010010=5 2H=82 01001001+11101000=00110001=3 1H=49 10111110+01010010=00010000=1 0H=16 10011010+11110001=10001011=8 BH= -117 4 00101001+01010011=01111100+0 0000110=10000010=82H=82 01110011-00100100=01001111-00000110=01001001=49H=49 01100110+00011000=01111110+0 0000110=10000100=84H=84 10010+01110101=00111+0000011 0 =00111=0207H=207 5 000020A3H,FF94H,00003456H,007FH,FFFFEC00H 6 无符号数:0~65535,0000H~FFFFH;带符号数:-32768~+32767,8000H~7FFFH 7 (1) 38H等于十进制数56,是十进制数56的补码,数字8的ASCII码,十进制数38的压缩BCD码 (2) FFH等于十进制数-1,是带符号数-1的补码,无符号数为255 (3) 5AH等于十进制数90,是十进制数90的补码,大写字母Z的ASCII码 (4) 0DH等于十进制数13,是十进制数13的补码,回车符的ASCII码 8 (1) 108=01101100B=6CH,补码01101100B,压缩BCD码01000,ASCII 码313038H (2) 46=00101110B=2EH,补码00101110B,压缩BCD码01000110,ASCII码3436H (3) –15=11110001B=F1H,补码11110001B,ASCII码2D3135H (4) 254=11110B=00FEH,补码11110B,压缩BCD码10100,ASCII 码323534H 9 (1) 56+63=01110111B,CF=0,SF=0,ZF=0,OF=0 (2) 83-45=00100110B,CF=0,SF=0,ZF=0,OF=0 (3) -74+29=11010011B,CF=0, SF=1,ZF=0,OF=0 (4) -92-37=01111111B,CF=1, SF=0,ZF=0,OF=1 10 回车、换行、响铃、ESC键、空格键、、P、p 习题二 9 最少划分为16个逻辑段,最多划分为65536个逻辑段(每段16个字节) 10 CS:IP,DS:BX、SI、DI,ES:BX、SI、DI,SS:SP、BP 11 字节单元保存8位数,字单元保存16位数。根据源操作数的属性确定要访问的是字节单元还是字单元。 12 对于字节单元来说,偶地址和奇地址一样;对于字单元而言,最好用偶地址保存,可减少CPU的访存次数。 13 首单元的物理地址=38AE8H,末单元的物理地址 =38AE8H+7FFFH=40AE7H 16 (1)物理地址=27679H (2) 物理地址=20F92H (3) 物理地址=20F92H (2)和(3)的物理地址是一样的。说明逻辑地

汇编语言复习题(附答案)

汇编语言复习题 注:蓝色标记的为答案,此答案仅供参考,大家自己做一下或看以一下,认为不对的地方,可以提出来一起讨论一下,另外看一下课后老师布置的相应作业。在此文档最后最后附有课 后四、六章的答案,大家抓紧时间复习哦! 一、选择题 1. 把要执行的程序与库文件连接起来形成可执行文件的系统程序是(B )。 A. 汇编程序 B. 连接程序 C. 机器语言程序 D.源代码程序 2. 在8088/8086的寄存器组中,CPU确定下一条指令的物理地址时需要用到的寄存器对是 (C )。 A..SS 和SP B.DS 和DI C.CS 和IP D.ES 和SI 3. 为了使主机访问外设方便起见,外设中的每个寄存器给予一个(C )。 A.物理地址 B. 逻辑地址 C. 端口地址 D. 段地址 4. MOV AX, 3064H,该指令中源操作数采用的寻址方式是(A )。 A.立即 B. 直接 C. 寄存器相对 D. 寄存器间接 5. 换码指令的助记符是(C )。 A. XCHG B. LEAS C.XLAT D. MOV 6. 如果A> B (A、B有符号数)发生转移,应选择的条件转移指令是(JGE )。 7. 下列符号中,可用作标识符的是(C )。 A.MOV B.AX C.MSG1 D.1ABC 8. X DB 10H DUP (1 , 2)内存变量定义语句拥有了( A )个字节的存储空间。 A.20D B.10D C.20H D.10H 9. 当DF=0时,执行串操作指令MOVSB变址寄存器SI、DI的值将(C )。 A.不变 B. 减1 C. 加1 D. 无法确定 10. 如下指令可将AX寄存器内容改变的是(A )。 A. AND AX , BX B . TEST AX , BX C. CMP AX , BX D . XCHG AX , AX 11.16位CPU支持的I/O 地址范围是(D )。 A. 0~0FFFFFH B. 0~0FFFFH C. 0~0FFFH D. 0~0FFH 12. MUL CL指令实现的功能是(A )。 A.无符号乘法:AX AL X CL B.有符号乘法:AX AL X CL C.无符号乘法:DX AL X CL D .有符号乘法:DX AL X CL 13. DOS系统功能调用(INT 21H )中,显示字符串的功能号是(D )。 A.01H B.02H C.08H D. 09H 14. 在16位CPU读取指令时,需要用到的寄存器对是(C )。 A.SS 和SP B.DS 和DI C.CS 和IP D.ES 和SI 15. 下列指令中,源操作数(既第2操作数)属于基址加变址寻址方式是(B )。 A.MOV AX,23H B. MOV AX,[BX+SI] C.SUB AX,[BX] D. ADD AX,BX 16. 有内存变量定义语句:VAR DW 10 DUP(1 , 2), 1234H, VAR的属性TYPE LENGTH和

汇编语言程序设计(第四版)第4章【课后答案】

汇编语言程序设计第四版 【课后习题答案】--囮裑為檤第4章基本汇编语言程序设计 〔习题4.1〕例题4.2如果要求算术右移8位,如何修改程序。 〔解答〕 思路:首先由最高位字节向次低位字节传送……次低位字节向最低位字节传送(共7次);再判最高位字节符号位,如为0,送00h到最高位字节;如为1,送ffh到最高位字节。传送可参考例题4.2,不过应从第一号字节送第零号字节,……最高位字节向次低位字节传送;也可以用循环来完成: .model small .stack 256 .data qvar dq 1234567887654321h .code .startup mov cx,7 mov si,1 again: mov al, byte ptr qvar[si] mov byte ptr qvar[si-1],al inc si loop again test al,80h jz ezz mov bl,0ffh jmp done ezz: mov bl,0 done: mov byte ptr qvar[7],bl .exit 0 end 〔习题4.2〕例题4.2如果要求算术左移7位,如何用移位指令实现。 〔解答〕 思路:可设计外循环体为8个字节左移一次,方法是:最低位字节算术左移一次,次低位字节至最高位字节依次带CF 位循环左移一次(内循环共8次),外循环体控制执行7次即可。 .model small .stack 256 .data qvar dq 1234567887654321h

.code .startup mov dx, 7 ;外循环次数 mov ax, byte ptr qvar[0] ;最低位字节送ax lpp: shl ax, 1 ;最低位字节左移一次,其d7移入CF位mov si, 1 mov cx, 7 ;内循环次数 again: rcl byte ptr qvar[si], 1 ;高位字节依次左移P50 inc si loop again dec dx jnz lpp .exit 0 .end 〔习题4.3〕将AX寄存器中的16位数连续4位分成一组,共4组,然后把这4组数分别放在AL、BL、CL和DL寄存器中。 〔解答〕 思路:设这四组从低位到高位分别放在AL、BL、CL和DL寄存器中。仅列出代码段:mov bl, al ;将al中的两组分开 and al, 0fh ;屏蔽高四位后送al mov cl, 4 ;原al中的数据逻辑右移4次送bl shr bl, cl mov dl, ah ;将ah中的两组分开 and dl, 0f0h ;屏蔽低高四位后送dl mov cl, 4 ;原ah中的数据逻辑右移4次送dl shr dl, cl mov cl, ah ;屏蔽高四位后送cl and cl, 0fh 〔习题4.4〕编写一个程序,把从键盘输入的一个小写字母用大写字母显示出来。 〔解答〕 getkey: mov ah, 1 ;从键盘输入,出口:al存键值 int 21h cmp al, 'a' ;判键值是小写字母? jb getkay cmp al, 'z' ja getkay sub al,20h ;是小写字母转换为大写字母 mov dl,al mov ah, 02h ;显示 int 21h 〔习题4.5〕已知用于LED数码管显示的代码表为:

汇编语言第6章答案

第6章流程控制 习题1. 指令指针EIP是通用寄存器还是专用寄存器?有指令能够直接给它赋值吗?哪些指令的执行会改变它的值? 解答:EIP是专用寄存器,不能通过指令直接给它赋值。可以改变其值的指令有:(1)无条件分支,包括:跳转(jmp)、调用(call)、中断(int)。 (2)条件分支,与标志位CF、OF、PF、SF、ZF相关的条件跳转指令。 (3)循环指令,LOOP、LOOPE等。 3. 相对于BASIC语言中GOTO语句作用的IA-32处理器指令是哪条? 跳转指令jmp 习题4. IA-32处理器通过改变EIP寄存器的数值就可以改变程序,如果程序需要无条件跳转到标号done位置执行,使用“MOVL done, %EIP”语句是否可以达到,为什么?如果不能实现该功能,应该使用哪条指令? 解答:不能。不能对EIP寄存器直接赋值。使用指令jmp done可以实现。 习题6 条件转移指令Jxx所利用的条件保存在何处?有多少个不同条件的转移指令? 保存在EFLAGES寄存器中 共16个(P107) 习题7 JA和JG指令发生跳转的条件都是“大于”,它们有什么区别? 在处理带符号值和无符号值时有所区别。计算无符号值时,使用JA,对于带符号值,使用JG。 习题8. 执行如下程序片断后,CMP指令分别使得5个状态标志CF、ZF、SF、OF和PF为0还是为1?它会使得哪些条件转移指令条件成立、发生转移? movl $0x20, %eax movl $0x80, %ebx cmpl %ebx,%eax 解答:CF=1 ZF=0 SF=1 OF=0 PF=1 可以使得发生转移的指令有:JC JS JP JNZ JNO 习题9. 有如下程序片断,请使用一条指令代替其中的两条指令: (1) again: ... jz next jmp again next: (2) again: ... jle next

汇编语言程序设计(钱晓捷)课后答案

汇编语言程序设计(第二版) 钱晓捷习题答案 第二章(01) 2.1 (1)AX=1200h (2)AX=0100h (3)AX=4C2Ah (4)AX=3412h (5)AX=4C2Ah (6)AX=7856h (7)AX=65B7h 2.2(1) 两操作数类型不匹配 (2) IP指令指针禁止用户访问 (3) 立即数不允许传给段寄存器 (4) 段寄存器之间不允许传送 (5) 两操作数类型不匹配 (6) 目的操作数应为[ BP ] (7) 源操作数应为[BX+DI] (8) 立即数不能作目的操作数 2.3 lea bx,table ;获取table的首地址,BX=200H mov al,8 ;传送欲转换的数字,AL=8 xlat ;转换为格雷码,AL=12H 2.4 堆栈是一种按“先进后出”原则存取数据的存储区域。 堆栈的两种基本操作是压栈和出栈,对应的指令是PUSH和POP。 2.5 mov ax,8057h push ax mov ax,0f79h push ax pop bx ;bx=0f79h pop [bx] ;DS:[0f79h]=8057h 2.6 AL=89h CF ZF SF OF PF AL=12h 1 0 0 1 1 AL=0afh 0 0 1 0 1 AL=0afh 1 0 1 0 1 AL=00h 0 1 0 0 1 AL=0ffh 0 0 1 0 1 AL=00h 0 1 0 0 1 2.7 W=X+Y+24-Z

2.8 (1)ADD DX,BX (2)ADD AL,[BX+SI] (3)ADD [BX+0B2H],CX (4)ADD WORD PTR [0520H],3412H (5)ADD AL,0A0H 2.9;为了避免与操作数地址混淆,将题中X,Y,Z,V 字操作数改为A,B,C,D mov ax,X ;ax=A imul Y ;dx,ax = A*B (将操作数看作符号数,以下同) mov cx,ax mov bx,dx ;bx,ax <-- dx,ax =A*B mov ax,Z ;ax = C cwd ;dx,ax =C (扩展符号后为双字) add cx,ax adc bx,dx ;bx,cx <-- bx,cx+dx,ax=A*B+C sub cx,540 sbb bx,0 ;bx,cx<-- A*B+C-540 mov ax, V ;ax= D cwd ;dx,ax= D (扩展符号后为双字) sub ax, cx sbb dx, bx ;dx,ax = dx,ax - bx,cx = D-(A*B+C-540) idiv X ;运算结果:[D-(A*B+C-540h)]/A ;ax存商,dx存余数 2.10;(1)xchg的操作数不能是立即数 (2不能对CS直接赋值 (3)两个操作数不能都是存储单元 (4)堆栈的操作数不能是字节量 (5)adc的操作数不能是段寄存器 (6)没有确定是字节还是字操作 (7)in不支持超过FFH的直接寻址 (8)out只能以AL/AX为源操作数 第二章(02) 2.11; 指令AX的值CF OF SF ZF PF Mov ax,1407h1470h----- And ax,ax1470h00000 Or ax,ax1470h00000 Xor ax,ax000011 Not ax0ffffh----- Test ax,0f0f0h0ffffh00101 注意: 1. mov, not指令不影响标志位 2. 其他逻辑指令使CF=OF=0, 根据结果影响其他标志位。

完整版汇编语言试题及答案..doc

一,单项选择题 (每小题 1 分,共 20 分 1-10CCCCAADACB 11-20.ADBBAADDCC 1.指令 JMP FAR PTR DONE 属于 ( C A.段内转移直接寻址 B.段内转移间接寻址 C.段间转移直接寻址 D.段间转移间接寻址 2.下列叙述正确的是 ( A.对两个无符号数进行比较采用CMP 指令 ,对两个有符号数比较用CMP S 指令 B.对两个无符号数进行比较采用CMPS 指令 ,对两个有符号数比较用CM P 指令 C.对无符号数条件转移采用JAE/JNB 指令 ,对有符号数条件转移用JGE/J NL 指令 D.对无符号数条件转移采用JGE/JNL 指令 ,对有符号数条件转移用JAE/J NB 指令 3.一个有 128 个字的数据区 ,它的起始地址为 12ABH:00ABH, 请给出这个数据区最末一个字单元的物理地址是 ( A.12CSBH B.12B6BH

C.12C59H D.12BFEH 4.在下列指令的表示中 ,不正确的是 ( A.MOV AL,[BX+SI] B.JMP SHORT DONI C.DEC [BX] D.MUL CL 5.在进行二重循环程序设计时,下列描述正确的是 ( A.外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内 B.外循环初值应置外循环之内;内循环初值应置内循环之内 C.内、外循环初值都应置外循环之外 D.内、外循环初值都应置内循环之外,外循环之内 6.条件转移指令 JNE 的测试条件为 ( A.ZF=0 B.CF=0 C.ZF=1 D.CF=1 7.8086CPU在基址加变址的寻址方式中,变址寄存器可以为 ( A.BX 或 CX

汇编语言程序设计(第四版)第1_4章【课后答案】

汇编语言程序设计第四版 【课后习题答案】 第1章汇编语言基础知识 〔习题1.1〕简述计算机系统的硬件组成及各部分作用。 〔解答〕 CPU:包括运算器、控制器和寄存器组。运算器执行所有的算术和逻辑运算;控制器负责把指指令逐条从存储器中取出,经译码分析后向机器发出各种控制命令,并正确完成程序所要求的功能;寄存器组为处理单元提供所需要的数据。 存储器:是计算机的记忆部件,它用来存放程序以及程序中所涉及的数据。 外部设备:实现人机交换和机间的通信。 〔习题1.2〕明确下列概念或符号:主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB。 〔解答〕 主存又称内存是主存储器的简称,主存储器存放当前正在执行的程序和使用的数据,CPU可以直接存取,它由半导体存储器芯片构成其成本高、容量小、但速度快。辅存是辅助存储器的简称,辅存可用来长期保存大量程序和数据,CPU需要通过I/O接口访问,它由磁盘或光盘构成,其成本低、容量大,但速度慢。 RAM是随机存取存储器的英语简写,由于CPU可以从RAM读信息,也可以向RAM写入信息,所以RAM也被称为读写存储器,RAM型半导体存储器可以按地址随机读写,但这类存储器在断电后不能保存信息;而ROM中的信息只能被读出,不能被修改,ROM型半导体通常只能被读出,但这类存储器断电

后能保存信息。 存储器由大量存储单元组成。为了区别每个单元,我们将它们编号,于是,每个存储单元就有了一个存储地址,I/O接口是由一组寄存器组成,为了区别它们,各个寄存器进行了编号,形成I/O地址,通常称做I/O端口。 KB是千字节、MB是兆字节、GB是吉字节和TB是太字节,它们都是表示存储器存储单元的单位。 〔习题1.3〕什么是汇编语言源程序、汇编程序、目标程序? 〔解答〕 用汇编语言书写的程序就称为汇编语言源程序;完成汇编工作的程序就是汇编程序;由汇编程序编译通过的程序就是目标程序。 〔习题1.4〕汇编语言与高级语言相比有什么优缺点? 〔解答〕 汇编语言与高级语言相比的优点:由于汇编语言本质就是机器语言,它可以直接地、有效地控制计算机硬件,因而容易产生运行速度快,指令序列短小的高效目标程序,可以直接控制计算机硬件部件,可以编写在“时间”和“空间”两方面最有效的程序。 汇编语言与高级语言相比的缺点:由于与处理器密切相关导致通用性差、可移植性差,汇编语言功能有限,又涉及寄存器、主存单元等硬件细节,编写汇编语言比较繁琐,调试起来也比较困难,编译程序产生的目标程序往往比较庞大、程序难以优化,运行速度慢。 〔习题1.5〕将下列十六进制数转换为二进制和十进制表示 (1)FFH (2)0H (3)5EH

汇编语言程序设计答案+廖建明-chap6

第六章习题答案 6.1 C 6.2 D 6.3 D 6.4 C 6.5 B 6.6 错。在L0: MOV AL,0语句后面加上RET语句 6.7 段内调用:保存IP内容入栈;更新IP内容 段间调用:保存CS,IP内容入栈;更新CS,IP内容 6.8 段内返回:从栈中弹出一个字的内容送入IP寄存器;SP=(SP)+n(如果带有操作数n) 段间返回:从栈中弹出两个字的内容分别送入IP,CS;SP=(SP)+n(如果带有操作数n) 6.9 从栈中弹出两个字的内容分别送入IP,CS;SP=(SP)+4 6.10 在需要和主程序共享寄存器的时候需要保护寄存器 6.11 寄存器传递参数;堆栈传递参数;地址表传递参数 6.12 相同点:都进行一次程序跳转 不同点:CALL会保存原地址IP入栈,而JMP不会 6.13 错误:子程序是FAR类型的,CALL时用的是NEAR 6.14 BX;(BX);SHIFT 6.15 图略 6.16 DATA SEGMENT N DB 5 DATA ENDS STACK SEGMENT DW 20H DUP(0) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK BEGIN: MOV AX,DATA MOV DS,AX MOV AL,N CALL FACT;调用阶乘子程序计算5! MOV RESULT,DX DEC N MOV AL,N CALL FACT;调用阶乘子程序计算4! ADD RESULT,DX DEC N MOV AL,N CALL FACT;调用阶乘子程序计算3! ADD RESULT,DX MOV AH,4CH

汇编语言习题-测验题答案

汇编语言各章习题、测试题答案 习题一 分别将下列二进制数作为无符号数和带符号数转换为十进制和十六进制数 01110111 00101111 十六进制运算 1A52H+4438H 3967H-2D81H 37H×12H 1250H×4H 将十进制数变为8位补码并做运算(结果用二进制、十六进制、十进制表示) 29+53 73-24 -66+82 -102-15 用压缩BCD码计算(结果用二进制、BCD码、十进制表示) 29+53 73-24 66+18 132+75 符号位扩展(字节扩展为字,字扩展为双字) 20A3H 94H 3456H 7FH EC00H 若机器字长为16位,其无符号数表示范围是多少带符号数表示范围是多少分别用十进制和十六进制表示。 写出下列十六进制数所能代表的数值或编码: (1)38H (2)FFH (3)5AH (4)0DH 将下列十进制数分别转换为二进制、十六进制、二进制补码、压缩BCD码和ASCII码: (1)108 (2)46 (3)-15 (4)254 写出下列算式的8位二进制运算结果,标志位CF、SF、ZF、OF分别是什么值 (1)56+63 (2)83-45 (3)-74+29 (4)-12-37 查表,指出ASCII码0DH、0AH、07H、1BH、20H、60H、50H、70H对应的控制字符。 测验一 单选题: 1.已知X=76,则[X]补= 。 A. 76H B. 4CH 2.已知[X]补=80H,则X= 。 A. 80H B. 0 C. 0FFH D. -80H 3.已知[X]补=98H,则[X]补/2= 。 A. 0CCH C. 49H D. 31H 4.已知X=78,Y=-83,则[X+Y]补= 。 A. 0F5H B. 0A1H C. 0FBH D. 65H 5.将124转换成十六进制数的结果是 A. 7CH B. 7DH C. 7EH D. 7BH 6.将93H看成一个压缩BCD码,其结果是 A. B. C. D. 7. 45转换成二进制数是 A. C. 00101101 D. 8.6CH转换成十进制数是 A. 118 B. 108 C. 48 D. 68 9.将93H扩展为字的结果是 A. FF93H B. 0093H C. 1193H D. 1093H

汇编语言试题及答案.

一,单项选择题(每小题1分,共20分 1-10CCCCAADACB 11-20.ADBBAADDCC 1.指令JMP FAR PTR DONE属于( C A.段内转移直接寻址 B.段内转移间接寻址 C.段间转移直接寻址 D.段间转移间接寻址 2.下列叙述正确的是( A.对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMP S指令 B.对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CM P指令 C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/J NL指令 D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/J NB指令 3.一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是( A.12CSBH B.12B6BH

C.12C59H D.12BFEH 4.在下列指令的表示中,不正确的是( A.MOV AL,[BX+SI] B.JMP SHORT DONI C.DEC [BX] D.MUL CL 5.在进行二重循环程序设计时,下列描述正确的是( A.外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内 B.外循环初值应置外循环之内;内循环初值应置内循环之内 C.内、外循环初值都应置外循环之外 D.内、外循环初值都应置内循环之外,外循环之内 6.条件转移指令JNE的测试条件为( A.ZF=0 B.CF=0 C.ZF=1 D.CF=1 7.8086CPU在基址加变址的寻址方式中,变址寄存器可以为( A.BX或CX

B.CX或SI C.DX或SI D.SI或DI 8.已知BX=2000H,SI=1234H,则指令MOV AX,[BX+SI+2]的源操作在(中。 A.数据段中偏移量为3236H的字节 B.附加段中偏移量为3234H的字节 C.数据段中偏移量为3234H的字节 D.附加段中偏移量为3236H的字节 9.执行如下程序:( MOV AX,0 MOV AX,0 MOV BX,1 MOV CX,100 A:ADD AX,BX INC BX LOOP A HLT 执行后(BX=( A.99

第4章习题 汇编语言程序设计(单片机第二版)

第四章习题与参考答案 4.1程序设计语言有哪三种?各有什么异同?汇编语言有哪两类语言?各有什么特点? 4.2在汇编语言程序设计中,为什么要采用标号来表示地址?标号的构成原则是什么?使用标号有什么限制?注释段起什么作用? 4.3MCS-51汇编语言有哪几条常用伪指令?各起什么作用?

4.4汇编语言程序设计分哪几步?各步骤的任务是什么? 4.5汇编语言源程序的机器汇编过程是什么?第二次汇编的任务是什么? 4.6请用除法指令编写例4.2的程序,并计算所占内存字节数和所需机器周期数。 4.7设内部RAM20H单元有两个非零的BCD数,请编写求两个BCD数的积并把积送入21H单元的程序。 4.8已知,从内部RAM BLOCK单元开始存放有一组带符号数,数的个数存放在LED单元。请编写

可以统计其中正数和负数个数并分别存入NUM和NUM+1单元的程序。 4.9设自变量X为一无符号数,存放在内部RAM的VAX单元,函数Y存放在FUNC单元。请编写满足如下关系的程序: X>=50时:Y=X; 50>X>=20时:Y=5X; X<20时:Y=2X;

4.10在例4.6的128分支程序中,若用LJMP指令代替AJMP指令,以便分支程序可以放在64KB地址范围的任务位置。请修改原程序,修改后的程序最多可实现多少个分支? 4.11从外部RAM的SOUCE(二进制8位)开始有一数据块,该数据块以$字符结尾。请编写程序,

把它们传送到以内部RAM的DIST为起始地址的区域($字符也要传送)。 4.12在例4.11中,若SOUCE为二进制16位,则程序又该如何编。 4.13在外部RAM的低256地址单元区,有起始地址为SOUCE且长度存放在LEN单元的数据块。请编写能对它们进行奇偶校验的程序。凡满足奇校验(奇数个1)的数据均送到内部RAM起始地址为DIST 的存储区。

汇编语言王爽第二版课后答案

第一章基础知识 检测点1.1(第8页) ---------------------- (1) 13 (2) 1024,0,1023 (3) 8192,1024 (4) 2^30,2^20,2^10 (5) 64,1,16,4 (6) 1,1,2,2,4 (7) 512,256 (8) 二进制 注意: 1.第4题中的符号'^'指求幂运算(如: 2^30指2的30次方) 第二章寄存器(CPU工作原理) 检测点2.1(第18页) ---------------------- (1)写出每条汇编指令执行后相关寄存器中的值。第一空:F4A3H 第二空:31A3H 第三空:3123H 第四空:6246H 第五空:826CH 第六空:6246H 第七空:826CH 第八空:04D8H 第九空:0482H 第十空:6C82H 第十一空:D882H 第十二空:D888H 第十三空:D810H 第十四空:6246H (2)只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。 解答如下: mov ax,2 add ax,ax add ax,ax add ax,ax 检测点2.2(第23页) ---------------------- (1)00010H,1000FH (2)1001H,2000H 第2题说明: 因为段的起始地址要为16的倍数。所以当段地址小于1001H或大于2000H时CPU都无法寻到。 检测点2.3(第33页) ----------------------答:CPU修改了4次IP的值。 情况如下: 第1次:执行完mov ax,bx后 第2次:执行完sub ax,ax后 第3次:读入jmp ax后 第4次:执行完jmp ax后 最后IP的值为0 实验1 查看CPU和内存,用机器指令和汇编指令编程(第33页) ----------------------------------------------------- 1.预备知识:Debug的使用 <此部分略> 2.实验任务(第43页) (1) <此部分略> (2) <此部分略> (3) 通过DEBUG中的D命令查看到主板的生产日期[以月、日、年,分隔符为'/'的格式]存储在内存ffff:0005~ffff:000C(共8个字节单元中)处。此生产日期不能被改变,因为其具有‘只读’属性。 (4) 通过向内存中的显存写入数据,使计算机根据写入的数据进行ASCII转换,并将转换后且可打印的字符输出到屏幕上。<注:关于显存的详细讨论不在此题范围> 第三章寄存器(内存访问) 检测点3.1(第52页) ---------------------- (1)(题目:略) 第一空:2662H 第二空:E626H 第三空:E626H 第四空:2662H 第五空:D6E6H 第六空:FD48H 第七空:2C14H 第八空:0000H 第九空:00E6H 第十空:0000H 第十一空:0026H 第十二空:000CH 提示:此题可在DEBUG中利用E命令在本机上按照题目中所给出的内存单元及其数据进行相应地修改,然后再用A命令进行写入(题目中所给出的)相应的汇编指令,最后再进行T命令进行逐步执行,以查看相应结果。

相关主题
文本预览
相关文档 最新文档