文档库 最新最全的文档下载
当前位置:文档库 › 汇编语言程序设计课后习题答案

汇编语言程序设计课后习题答案

第四章汇编语言程序设计习题答案

一、单项选择题

1.C

2.B

3.C

4.C

5.C

6.A

7.A

8.C

9.B10. D

11.B12.B13.D14.C15.C16.A17.D18.D19.A20. C

21.B22.D23.D24. A

二、多项选择题

1.ABCEF

2.ACE

3.AC

4.ABCD

三、填空题

1.PARA

2.1,2,60,120, 1

3.SEGMENT,ENDS

4.1200

5.段内转移,段间转移

6.AH

7.过程,PROC,RET,NEAR,FAR

8.LEA BX,BUF

9.1, 4

10..0504H

11.ASM,EXE

12.立即寻址,直接寻址

四、判断题

××××V V V××V

五、程序分析题

1. 3

2.12H,3412H

3.46H,73H

4.(1) 从目的串中查找是否包含字符‘0’,若找到则停止,否则继续重复搜索。

(2) ZF=1, 说明已找到字符

ZF=0, 说明未找到字符

CX 0,说明中途已找到字符退出

CX=0,且ZF=0说明串中无字符‘0’

5.1, 0, 3, 2, 5, 4, 7, 6, 9, 8

6.87H,81H

7.44AAH,44D5H

8.DEC CX,JNC,JZ

9.JNZ L2

10.ADC DX,0,CLC

11.AAS

12.STOSB

13.1,3,1,2, 2

14.(2000H)=39H (2001H)=00H

将(2000H),(2001H)两相邻单元中存放的未组合型BCD码压缩成组合型BCD码,

并存入(2000H)单元,0 (2001H)

15.A)2345H,6780H

B)将DX、AX中存放的32位二进制数向左移动4位

16.0 ,1009H0

对数据段内1000H~1008H单元置数,依次送入1,2,4,8,16,32,64,128,

0共九个

17.20H,10,T

18.①$-BUF②ASSUME CS:CODE,DS:DATA③MOV DS,AX

MOV AX,0⑤JLE NEXT⑥JNZ NEXT⑦JNZ LOPA⑧BEGIN

19.不相同,第一个数据段72H在前,04在后,后一个04H在前,72H在后。

20.09H,0EH,0DH

六、简答题

1.NUMS分配了180个字节(3分) V AR分配了15个字节

2.(1)把SP所指的堆栈顶部的一个字的内容弹回IP,SP加2。

(2)段间返回指令把SP所指的堆栈顶部的两个字的内容先弹回IP后弹回CS,SP加

4。

3.2, 10, 20

,16字节单元

(2)程序运行后,XAD、YAD,单元中的值为9和39H,屏幕上显示的字符是“9”

6.YXGFDCBA9621

7.程序功能是将从STRING开始的N个字节中的字符串变成大写存放到从NEWSTR开

始的N个字节中。程序执行后,从NEWSTR开始的N个字节中的内容是"ASSEMBLE LANGUAGE IS POWERFUL"。

七、编程题

1.参考程序:

CODE SEGMENT

ASSUME CS:CODE,DS:CODE

GO: MOV AX,DATA

MOV DS,AX

AND AL,0F0H

EXIT:

CODE ENDS

END GO

2.参考程序:

DATA SEGMENT

ORG 1000H

DAT DB '1234$567$8'

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:DATA START: MOV AX,DATA

MOV DS,AX

MOV ES,AX

CLD

MOV BX,1000H

MOV CX,100

XOR AX,AX

MOV AL,'$'

CALL FOUND

FOUND PROC NEAR

PUSH AX

CLD

REPNE SCASB

XOR AX,AX

AND CX,0FFH

JZ OVER

DEC BX

MOV AL,[DI]

OVER: RET

POP AX

FOUND ENDP

CODE ENDS

END START

https://www.wendangku.net/doc/7f19288551.html, 2100H

DATA SEGMENT

DAT1 DB 1,2,3,4,5,6,7,8

DB 1,2,3,4,5,6,7,8

DB 0,0,0,0,0,0,0,0

SUM DB ?

DATA ENDS

STACK SEGMENT

ST1 DB 100 DUP(?)

TP EQU LENGTH ST1

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DATA, SS:STACK START: MOV AX, DATA

MOV DS, AX

MOV AX, STACK

MOV SS, AX ;初始化堆栈段

MOV BX, OFFSET DAT1 ;指向数据

MOV CX,8 ;循环次数CX=8

CALL MADD

MADD PROC NEAR

PUSH AX

PUSH DX

MOV DX,SI

MOV BX,0

MOV DI,SI

ADD DI,8

ADD BX,16

CLC ;清进位CF= 0

AA: MOV AL, [SI] ;取一个字节到AX

ADC AL,[DI] ;AX =AX+[DI] +CF

MOV [BX+10],AL ;存一个字到[BX]

PUSHF ;保护进位CF

INC SI ;修改第一个数的地址指针SI

INC DI ; 修改第二个数的地址指针DI

INC BX ;修改结果指针BX

POPF ;恢复标志寄存器

LOOP AA ; CX = CX-1,若CX=0 转AA;CX=0,暂停

MOV BX,DX

ADD BX,16

POP DX

POP AX

RET

MADD ENDP

CODE ENDS

END START

https://www.wendangku.net/doc/7f19288551.html, 2000H

DATA SEGMENT

DATA1 DB 1234H,1234H

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DATA

GO: MOV AX,DATA

MOV DS,AX

MOV AX,PTR WORD [2000H]

MOV CX,PTR WORD{2002H}

MUL CX

MOV [2004H],AX

MOV [2006H],DX

CODE ENDS

END GO

5. CODE SEGMENT

ASSUME CS:CODE, DS:CODE

GO: MOV AX,DATA

MOV DS,AX

AND AX,02H

JZ ZE:

MOV DH,1

JMP EXIT

ZE: MOV DH,0

EXIT:

CODE ENDS

END GO

6.参考程序:

MOV BX,OFFSET BUF

MOV CX,80

MOV S1,0

MOV S2,0

MOV S3,0

COMPARE:MOV AL,[BX]

CMP AL,60

JB DON1 ;低于60转

CMP AL,80

JBE DON2 ;低于等于80,高于60转

INC S3 ;高于80,S3+1

JMP LP

DON1:INC S1

JMP LP

DON2:INC S2

LP: INC BX

LOOP COMPARE

HLT

7.参考程序:

MOV DI,2000H

CLD

MOV AL,23H

MOV CX,100

REPNZ SCASB ;AL -‘#’

JNZ STOP ;没找到,退出

DEC DI ;找到,退回到原地址

MOV [DI],00H ;替换为0

MOV DX,DI

STOP:HLT

8 START:PUSH CS

PUSH IP

MOV AX,0

MOV ES,AX

MOV DI,4*60H

MOV AX,OFFSET FUNCTION

STOSW

MOV AX,SET FUNCTION

STOSW

INT 60H

FUNCTION PROC

MOV AL,DA T

CMP AL,DA T+1

JNC L1

MOV AH,DA T+1

MOV BY1,AL

MOV AL,AH

L1:SUB AL,DA T+1

AAS

RUNCTION ENDP

9.DATA SEGMENT

DAT DB 3,4,2,3,4,6,7,8,9,19

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DA TA

MOV DS,AX

MOV CX,10

MOV SI,OFFSET DAT1

LP1: CALL PAIXU

INC SI

LOOP LP1

MOV DX,OFFSET DAT1

MOV AH,09H

INT 21H

INC DX

MOV CX,08H

MOV AX,0

LPADD: ADD AX,PTR BYTR[DX]

LOOP LPADD

MOV BL,8

DIV BL

MOV A VG,AH

MOV AH,4CH

INT 21H

PAIXU PROC NEAR

PUSH CX

PUSH SI

MOV AL,[SI]

CMPLP: CMP AL,BYTE PTR[SI+1]

JGE NEXT

MOV BL,[SI+1]

MOV [SI],BL

MOV [SI+1],AL

MOV AL,BL

NEXT: INC SI

LOOP CMPLP

POP SI

POP CX

PAIXU ENDP

CODE ENDS

END START

10.DATA SEGMENT

BUFER DB 10,0,20,15,38,236

MAX DB 0

MIN DB 0

A VI D

B 0

DA TA ENDS

STACK SEGMENT PARA STACK‘STACK’

DW 100 DUP (?)

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK (1分) START PROC FAR

BEGIN:PUSH DS

MOV AX,0

PUSH AX

MOV AX,DATA

MOV DS,AX

LEA DI,BUFFER

MOV DX,0 ;使DH=0,DL=0

MOV CX,6

MOV AX,0 ;和清0

MOV BH,0 ;最大值

MOV BL,0FFH ; 最小值LOP1: CMP BH,[DI]

JA NEXT1 ;若高于转移

MOV BH,[DI];大值→BH

NEXT1: CMP BL,[DI] ;

JB NEXT2 ;若低于转移

MOV BL,[DI];小值→BL

NEXT2: MOV DL,[DI];取一字节数据

ADD AX,DX ; 累加和

INC DI

LOOP LOP1

MOV MAX,BH;送大值

MOV MIN,BL;送小值

MOV DL, 6

DIV DL,;求平均值

MOV A VI,AL;送平均值

RET

START ENDP

CODE ENDS

END BEGIN

11解:

(1).【程序】(完整段模式)

DA TA SEGMENT

SCORE DB 7,8,9,8,10,10,9,8,7,10

N=$-SCORE

A VERAGE D

B ?

MAX DB ?

MIN DB ?

DA TA ENDS

CODE SEGMENT 'CODE'

ASSUME CS:CODE,DS:DA TA

START: MOV AX,DA TA

MOV DS,AX

MOV DL,SCORE

MOV MAX,DL

MOV MIN,DL

MOV CX,N-1

MOV BX,1

CYCLE: MOV AL,SCORE[BX]

ADD DL,AL

CMP AL,MAX

JLE CMPMIN

MOV MAX,AL

CMPMIN: CMP AL,MIN

JGE NEXT

MOV MIN,AL

NEXT: INC BX

LOOP CYCLE

SUB DL,MAX

SUB DL,MIN

MOV CL,3

SAR DL,CL

MOV A VERAGE,DL

MOV AH,4CH

INT 21H

CODE ENDS

END START

(2).【程序】(简化段模式)

.MODEL SMALL

.386

.STACK

.DA TA

SCORE DB 7,8,9,8,10,10,9,8,7,10

N=$-SCORE

.DATA?

A VERAGE D

B ?

MAX DB ?

MIN DB ?

.CODE

.STARTUP

MOV DL,SCORE

MOV MAX,DL

MOV MIN,DL

MOV CX,N-1

MOV BX,1

.WHILE CX

MOV AL,SCORE[BX]

ADD DL,AL

.IF AL > MAX

MOV MAX,AL

.ENDIF

.IF AL < MIN

MOV MIN,AL

.ENDIF

INC BX

DEC CX

.ENDW

SUB DL,MAX

SUB DL,MIN

SAR DL,3

MOV A VERAGE,DL

.EXIT

END

12.(1).【程序】(完整段模式)

DA TA SEGMENT

SCORE DB 90,23,56,67,98,78,10,45,87,100 N=$-SCORE

SCOREF DB 0

SCOREE DB 0

SCORED DB 0

SCOREC DB 0

SCOREB DB 0

SCOREA DB 0

DA TA ENDS

CODE SEGMENT 'CODE'

ASSUME CS:CODE,DS:DA TA START: MOV AX,DA TA

MOV DS,AX

LEA SI,SCORE

MOV CX,N

MOV DL,10

CLASS: MOV AH,0

MOV AL,[SI]

DIV DL

SUB AL,5

JG GREAT

INC BYTE PTR SCOREF

JMP NEXT

GREAT: MOV AH,0

MOV BX,AX

INC BYTE PTR SCOREF[BX] NEXT: INC SI

LOOP CLASS

MOV AH,4CH

INT 21H

CODE ENDS

END START

(2).【程序】(简化段模式)

.MODEL SMALL

.386

.STACK

.DA TA

SCORE DB 90,23,56,67,98,78,10,45,87,100

N=$-SCORE

.DA TA?

SCOREF DB 0

SCOREE DB 0

SCORED DB 0

SCOREC DB 0

SCOREB DB 0

SCOREA DB 0

.CODE

.STARTUP

LEA SI,SCORE

MOV CX,N

MOV DL,10

.REPEAT

MOV AH,0

MOV AL,[SI]

DIV DL

SUB AL,5

.IF(AL<=0)

INC BYTE PTR SCOREF

.ELSE

MOV AH,0

MOV BX,AX

INC BYTE PTR SCOREF[BX]

.ENDIF

INC SI

.UNTILCXZ

.EXIT

END

END

13.参考程序如下:

DSEG SEGMENT

BUF1 DB 98H,32H

CNT EQU $ - BUF1

BUF2 DB 51H,46H

SUM DB CNT DUP(?)DSEG ENDS

CSEG SEGMENT

ASSUME CS:CSEG,DS:DSEG MAIN PROC FAR

START:PUSH DS

MOV AX,0

PUSH AX

MOV AX,DSEG

MOV DS,AX

MOV SI,OFFSET BUF1

LEA DI,BUF2

MOV BX,OFFSET SUM

MOV CX,CNT

CLC

LOP:MOV AL,[SI]

ADC AL,[DI]

DAA

MOV [BX],AL

INC SI

INC DI

INC BX

LOOP LOP

RET

AIN ENDP

CSEG ENDS

END START

14.参考程序如下:

DSEG SEGMENT

A DW ?

B DW ?

DSEG ENDS

CSEG SEGMENT

ASSUME CS:CSEG,DS:DSEG MAIN PROC FAR

START:PUSH DS

MOV AX,0

PUSH AX4

MOV AX,DSEG

MOV DS,AX

BEGIN:MOV AX,A

MOV BX,B

XOR AX,BX

TEST AX,0001H

JZ CLASS

TEST BX,0001H

JZ EXIT

XCHG BX,A

MOV B,BX

JMP EXIT

CLASS:TEST BX,0001H

JZ EXIT

INC A

INC B

EXIT:RET

MAIN ENDP

CSEG ENDS

END START

15. LOP1: MOV AH, 1

INT 21H

CMP AL, ‘Y’

JZ YES

CMP AL, ‘N’

JZ NO

JMP LOP1

…………

YES: ………..

……………

NO:

(YES和NO分别是两程序段入口处的标号)

16.DATA SEGMENT

BUF1 DW-56,24,54,-1,89,-8……

BUF2 DW45,-23,124,345,-265,……

SUM DW10DUP(0)

DATA ENDS

CODE SEGMENT

ASSUME DS: DATA, CS: CODE ES: DATA START MOV AX, DATA

MOV DS, AX

MOV ES, AX

LEA SI, BUF1

LEA DI, BUF2

LEA BX, SUM

MOV CX, 10

LOP1: MOV AX, [SI]

CMP AX, 0

JAE NEXT1

NEG AX

NEXT1: MOV [SI], AX

MOV AX, [DI]

CMP AX, 0

JAE NEXT2

NEG AX

NEXT2: ADD AX, [SI]

MOV [BX], AX

INC SI

INC SI

INC DI

INC DI

INC BX

INC BX

DEC CX

LOOP LOP1

MOV AH, 4CH

INT 21H

CODE ENDS

END START

新版汇编语言程序设计习题答案(钱晓捷主编)电子教案

新版汇编语言程序设计习题答案(钱晓捷主 编)

新版汇编语言程序设计习题答案(钱晓捷主编) 第一章汇编语言基础知识 1.1、简述计算机系统的硬件组成及各部分作用 1.2、明确下列概念或符号: 主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB 1.3、什么是汇编语言源程序、汇编程序、目标程序? 1.4、汇编语言与高级语言相比有什么优缺点? 1.5、将下列十六进制数转换为二进制和十进制表示 (1)FFH (2)0H (3)5EH (4)EFH (5)2EH (6)10H (7)1FH (8)ABH 1.6、将下列十进制数转换为BCD码表示 (1)12 (2)24 (3)68 (4)127 (5)128 (6)255 (7)1234 (8)2458 1.7、将下列BCD码转换为十进制数 (1)10010001 (2)10001001 (3)00110110 (4)10010000 (5)00001000 (6)10010111 (7)10000001 (8)00000010 1.8、将下列十进制数分别用8位二进制数的原码、反码和补码表示 (1)0 (2)-127 (3)127 (4)-57 (5)126 (6)-126 (7)-128 (8)68 1.9、完成下列二进制数的运算 (1)1011+1001 (2)1011-1001 (3)1011×1001 (4)10111000÷1001 (5)1011 ∧~1011 (8)1011 ⊕ 1001 1001(6)1011 ∨1001(7) 1.10 数码0~9、大写字母A~Z、小写字母a~z对应的ASCII码分别是多少?ASCII码为0dh、0ah对应的是什么字符? 1.11、计算机中有一个“01100001”编码,如果把它认为是无符号数,它是10进制什么数?如果认为它是BCD码,则表示什么数?又如果它是某个ASCII码,则代表哪个字符? 1.12、简述Intel 80x86系列微处理器在指令集方面的发展。 1.13、什么是DOS和ROM-BIOS? 1.14、简述PC机最低1MB主存空间的使用情况。 1.15、罗列8086CPU的8个8位和16位通用寄存器,并说明各自的作用。 1.16、什么是标志,它有什么用途?状态标志和控制标志有什么区别?画出标志寄存器FLAGS,说明各个标志的位置和含义。

新版汇编语言程序设计习题答案(钱晓捷主编)

第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〕汇编语言与高级语言相比有什么优缺点? 〔解答〕 汇编语言与高级语言相比的优点:由于汇编语言本质就是机器语言,它可以直接地、有效地控制计算机硬件

IBM-PC汇编语言程序设计课后习题解答

附录:《IBM—PC汇编语言程序设计》习题参考答案 第一章.习题 1.1用降幂法和除法将下列十进制数转换为二进制数和十六进制数: (1) 369 (2) 10000 (3) 4095 (4) 32767 答:(1) 369=1 0111 0001B=171H (2) 10000=10 0111 0001 0000B=2710H (3) 4095=1111 1111 1111B=FFFH (4) 32767=111 1111 1111 1111B=7FFFH 1.2将下列二进制数转换为十六进制数和十进制数: (1) 10 1101 (2) 1000 0000 (3) 1111 1111 1111 1111 (4) 1111 1111 答:(1) 10 1101B=2DH=45 (2) 1000 0000B=80H=128 (3) 1111 1111 1111 1111B=FFFFH=65535 (4) 1111 1111B=FFH=255 1.3将下列十六进制数转换为二进制数和十进制数: (1) FA (2) 5B (3) FFFE (4) 1234 答:(1) FAH=1111 1010B=250 (2) 5BH=101 1011B=91 (3) FFFEH=1111 1111 1111 1110B=65534 (4) 1234H=1 0010 0011 0100B=4660 1.4完成下列十六进制数的运算,并转换为十进制数进行校核: (1) 3A+B7 (2) 1234+AF (3) ABCD-FE (4) 7AB×6F 答:(1) 3A+B7H=F1H=241 (2) 1234+AFH=12E3H=4835 (3) ABCD-FEH=AACFH=43727 (4) 7AB×6FH=35325H=217893 1.5下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十六进制数表示其运算结果。 (1) (-85)+76 (2) 85+(-76) (3) 85-76 (4) 85-(-76) (5) (-85)-76 (6) -85-(-76) 答:(1) (-85)+76=1010 1011B+0100 1100B=1111 0111B=0F7H;CF=0;OF=0 (2) 85+(-76)=0101 0101B+1011 0100B=0000 1001B=09H;CF=1;OF=0 (3) 85-76=0101 0101B-0100 1100B=0101 0101B+1011 0100B=0000 1001B=09H;CF=0;OF=0 (4) 85-(-76)=0101 0101B-1011 0100B=0101 0101B+0100 1100B=10100001B=0A1H;CF=0;OF=1 (5) (-85)-76=1010 1011B-0100 1100B=1010 1011B+1011 0100B=0101 1111B=5FH;CF=0;OF=1 (6) -85-(-76)=1010 1011B-1011 0100B=1010 1011B+0100 1100B=11110111B=0F7H;CF=0;OF=0 1.6下列各数为十六进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的带符号数或 无符号数时,它们所表示的十进制数是什么? (1) D8 (2) FF 答:(1) D8H表示的带符号数为-40,D8H表示的无符号数为216; (2) FFH表示的带符号数为-1,FFH表示的无符号数为255。 1.7下列各数均为用十六进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的数或字 符的ASCII码时,它们所表示的十进制数及字符是什么? (1) 4F (2) 2B (3) 73 (4) 59 答:(1) 4FH表示的十进制数为79,4FH表示的字符为O; (2) 2BH表示的十进制数为43,2BH表示的字符为+; (3) 73H表示的十进制数为115,73H表示的字符为s; (4) 59H表示的十进制数为89,59H表示的字符为Y。 1.8请写出下列字符串的ASCII码值。 For example, This is a number 3692. 答:46H 6FH 72H 20H 65H 78H 61H 6DH 70H 6CH 65H 2CH 0AH 0DH 54H 68H 69H 73H 20H 69H 73H 20H 61H 20H 6EH 75H 6DH 62H 65H 72H 20H 33H 36H 39H 32H 2EH 0AH 0DH

汇编语言程序设计习题答案

第一章微型计算机系统概述 1.3习题与综合练习 1.解释和区别下列名词术语 (1)微处理器(MP):具有中央处理器功能的大规模集成电路器件 微型计算机(MC) 微型计算机系统(MCS) (2)硬件:硬件是计算机系统的躯体,由控制器,运算器,存储器,输入设备,输出设备5大部分组成。 软件:软件是计算机的头脑和灵魂,可分为系统软件和应用软件。 (3)字节:8位二进制是一个字节。 字:16位二进制构成一个字。 字长:计算机的运算部件能同时处理的二进制数据的位数。 (4)指令指针:存放BIU要取的下一条指令的偏移地址。 指令寄存器: 指令译码器: 状态寄存器: (5)存储单元: 存储内容: 存储地址: 存储容量: (6)RAM: ROM: 软件固化: 2.冯·诺依曼计算机结构的特点是什么? (1)采用二进制数的形式表示数据和指令。 (2)将指令和数据存放在存储器中。 (3) 计算机硬件由控制器,运算器,存储器,输入设备和输出设备5大部分组成。 3.件数计算机系统中复杂指令集和精简指令集的特点和用途。 复杂指令集(CISC):在微型计算机的体系结构组成结构上是以复杂指令为设计的计算机,在指令的运行过程中按指令的复杂程度来指挥计算机完成各条指令,由于各条指令复杂程度不同分配的时钟周期各不相同,执行指令所需时间就不相同。CISC体系的指令集由微程序来实现,即每一个操作由若干微操作的程序组合来实现。所以CISC可以使用微指令编程的方式实现多种和功能复杂的指令。 精简指令系统(RISC):不管计算机的指令如何复杂,在一个计算机时钟周期内完成,计算速度快,指令集简单。每一条指令直接有硬布线实现,即它的每条指令原则上有自己的一套逻辑时序电路直接实现,所以单条指令的实现所占用的硬件资源较多。因为该体系没有能采用增加单条指令的功能或高位的指令语义,也没有增加指令的条数,而是集中于它的精简指令集上。 4.CPU是计算机系统中的重要部件,试说明CPU的结构和功能。 微处理器是计算机中最关键的部件,由控制器,运算器,寄存器组和辅助部件组成。 控制器是硬件系统的指挥部,负责从存储器中取出指令,分析指令,确定指令类型并对指令进行译码,按时间先后顺序负责向其他各部件发出控制信号,保证各部件协调工作。运算器是用来进行算术运算和逻辑运算的元件。寄存器组用来存放计算所需的各种操作数,地址

汇编语言程序设计习题及答案

汇编语言程序设计习题及答案 汇编语言程序设计习题及答案 汇编语言是一种底层的计算机语言,它直接操作计算机的硬件资源。虽然在现 代计算机编程中,高级语言如C、Java等更为常见,但了解汇编语言的基本原 理和编程技巧对于理解计算机底层工作原理和进行性能优化非常重要。本文将 介绍一些汇编语言程序设计的习题及其答案,帮助读者巩固和提升汇编语言编 程能力。 一、基础习题 1. 编写一个汇编程序,将存储器中的某个字节的值加1,并将结果存回原位置。答案: ```assembly MOV AL, [地址] INC AL MOV [地址], AL ``` 2. 编写一个汇编程序,计算存储器中一个数组的和,并将结果存放在指定的寄 存器中。 答案: ```assembly MOV CX, 数组长度 MOV BX, 数组首地址 MOV AX, 0

LOOP_START: ADD AX, [BX] ADD BX, 2 LOOP LOOP_START ``` 二、进阶习题 1. 编写一个汇编程序,实现字符串的逆序输出。答案: ```assembly MOV SI, 字符串首地址 MOV DI, 字符串尾地址 MOV CX, 字符串长度 DEC CX REVERSE: MOV AL, [SI] MOV AH, [DI] MOV [DI], AL MOV [SI], AH INC SI DEC DI LOOP REVERSE ```

2. 编写一个汇编程序,实现两个16位无符号整数的相乘,并将结果存放在指定的寄存器中。 答案: ```assembly MOV AX, 第一个数 MOV BX, 第二个数 MUL BX ``` 三、挑战习题 1. 编写一个汇编程序,实现一个简单的计算器,支持加法、减法、乘法和除法运算。 答案: ```assembly READ_INPUT: ; 读取用户输入 ; ... PARSE_INPUT: ; 解析用户输入,获取操作数和运算符 ; ... CALCULATE: ; 根据运算符进行相应的计算 ; ...

计算机组成原理与汇编语言程序设计课后习题及解答(详解)

计算机组成原理与汇编语言程序设计课后习题及解答 徐, 第1章习题一 1.什么是程序存储工作方式? 答:计算机的工作方式——存储程序工作方式。即事先编写程序,再由计算机把这些信息存储起来,然后连续地、快速地执行程序,从而完成各种运算过程。 2.采用数字化方法表示信息有哪些优点? 用数字化方法表示信息的优点: (1)抗干扰能力强, 可靠性高。 (2)依靠多位数字的组合,在表示数值时可获得很宽的表示范围以及很高的精度。 (3)数字化的信息可以存储、信息传送也比较容易实现。 (4)可表示的信息类型与范围及其广泛,几乎没有限制。 (5)能用逻辑代数等数字逻辑技术进行信息处理,这就形成了计算机硬件设计的基础。 3.如果有7×9点阵显示出字符A的图像,请用9个七位二进制代码表示A的点阵信息。 4.数字计算机的主要特点是什么? 1. (1)能在程序控制下自动连续地工作; (2|)运算速度快; (3)运算精度高; (4)具有很强的信息存储能力; (5)通用性强,应用领域及其广泛。 5.衡量计算机性能的基本指标有哪些? 答:衡量计算机性能的基本指标: (1)基本字长——参加一次运算的数的位数; (2)数据通路宽度——数据总线一次能并行传送的位数; (3)运算速度——可用①CPU的时钟频率与主频,②每秒平均执行指令数,③典型四则运算的时间来表示。 (4)主存储器容量——可用字节数或单元数(字数)×位数来表示。 (5)外存容量——常用字节数表示。 (6)配备的外围设备及其性能。 (7)系统软件配置。 7.系统软件一般包括哪些部分?列举你所熟悉的三种系统软件。 系统软件一般包括操作系统,编译程序、解释程序、各种软件平台等。例如WINDOWS98操作系统,C语言编译程序等,数据库管理系统。 8.对源程序的处理有哪两种基本方式? 对源程序的处理通常有两种处理方式:解释方式和编译方式。 第2章习题二 1.将二进制数(101010.01)2 转换为十进制数及BCD码。 解:(101010.01)2 = (42.25)10 = (01000010.00100101)BCD 2.将八进制数(37.2)8转换为十进制数及BCD码. 解:(37.2)8 = (31.25)10 =(00110001.00100101)BCD 3.将十六进制数(AC.E)转换为十进制数及BCD码. 解: (AC.E)16 =(172.875)10 = 0.1)BCD 4.将十进制数(7 5.34)10转换为8位二进制数及八进制数、十六进制数。

汇编语言程序设计习题-答案

4.1分析执行下列指令序列后的结果:1)MOVAX,1234H MOVBX,00FFH ANDAX,BX 【答】(AX)=0034H 2)MOVAL,0101B ANDAL,000111B;(AL)=000101B ORAL,11000B;(AL)=110101B XORAL,0011B;(AL)=11010B NOTAL 【答】(AL)=00101B 3)MOVDL,05H MOVAX,0A00H MOVDS,AX MOVSI,0H MOVCX,0FH AGAIN: INCSI CMP[SI],DL LOOPNE AGAIN HLT

本程序实现了什么功能? 【答】在以0A001H开始的15个单元中查找05H。 4)MOVAX,DSEGADDR MOVDS, AX MOVES,AX MOVSI, OFFSET B1ADDR MOVDI,OFFSET B2ADDR MOVCX,N CLD REPMOVSB HLT 本程序实现了什么功能? 【答】将B1ADDR中N个字节数据传送到B2ADDR开始的15个存储单元。5)MOVAX, 0H MOVDS,AX MOVES, AX MOVAL,05H MOVDI,0A000H MOVCX,0FH CLD AGAIN:

SCASB LOOPNEAGAIN HLT 本程序实现了什么功能? 【答】从地址0A000H开始的15个单元中查找字节型数据05H,用条件循环LOOPNZ,控制数据05H的查找。 4.2阅读程序: 1).CLD LEADI,[0100H] MOVCX, 0080H XORAX, AX REPSTOSW 本程序实现了什么功能? 【答】将DS中起始地址为0100H的128个字节单元清零。 2).MOVAL, 08H SAL,01H;(AL)=000100H MOVBL, AL MOVCL ,02H SAL,CL;(AL)=01000H ADDAL,BL;(AL)=0100H 本程序实现了什么功能?

《汇编语言程序设计》习题答案(第二版,沈美明,温冬婵,清华大学出版社)

1 汇编语言程序设计(第二版) 第二章 1、 答:直接由指令指定的I/O 端口数为256个。 2、答: 3、答:字节单元:(30022H ) = AB H ,(30024H ) = EF H 字单元: (30021H ) = AB34 H ,(30022H ) = CDAB H 。 4、答:3017:000A 的存储单元的物理地址是3017AH , 3015:002A 的存储单元的物理地址是3017AH , 3010:007A 的存储单元的物理地址是3017AH 。 5、答:该程序的第一个字的物理地址是0AAA40H 。 6、答:条件标志OF 、SF 、ZF 、CF 的值依次分别为0、0、0、0。 7、答:(1)AX 、BX 、CX 、DX 、AH 、AL 、BH 、BL 、CH 、CL 、DH 、DL 、 SP 、BP 、DI 、SI (注意:学生尽量不要用SP 参与加减运算) (2)CX (3)DX 、AX 、AH 、AL (4)CS 、DS 、ES 、SS (5)FLAGS (6)IP (7)SS 、SP 、BP 8、答:可以用来指示存储器地址的寄存器有BX 、SP 、BP 、DI 、SI 、IP 、CS 、DS 、 ES 、SS 。 9、答:唯一正确的是D 。 第三章 1。 .(1)立即寻址 没有 (2)直接寻址 7237H (3)使用BX 的寄存器寻址 没有 (4)使用BX 的间接寻址 637DH (5)使用BX 的寄存器相对寻址 0D5F0H (6) 基址变址寻址 8E18H (7)相对基址变址 004FH

2 2。根据下列要求,写出相应的汇编指令。 (1)ADD DX,BX (2) ADD AL,[BX][SI] (3) ADD [BX][0B2H], CX (4) MOV AX,2A59H ADD [0524H] ,AX (5) ADD AL ,0B5H 3。 (1)寄存器间接寻址 MOV BX,OFFSET [BLOCK][0AH] MOV DX ,[BX] (2)寄存器相对寻址 MOV SI,OAH MOV DX,[BLOCK][SI] (3)基址变址寻址 MOV BX ,BLOCK MOV SI,OAH MOV DX,[BX][SI] 4现有(DS ) =2000H,(BX)=0100H,(SI)=0002H,(20100)=12H,(20101)=34H,(20102)=56H,(20103)=78H,(21200)=2AH,(20201)=4CH,(21202)=B7H,(21203)=65H,试说明下列各条指令执行完后,AX 寄存器的内容。 (1)MOV AX,1200H 1200H (2) MOV AX,BX 0100H (3) MOV AX,[1200] 4C2AH 注意,是字单元!! (4)MOV AX,[BX] 3412H 同上 (5)MOV 1100[BX] 4C2AH (6) MOV AX,[BX][SI] 7856H (7) MOV AX,1100[BX][SI] 65B7H 5。 (1) 7CD9H (2) 1200H (3) 6319H 6。 MOV BX,2000H LES DI ,[BX] MOV AX, ES :DI 7。转向地址OBJ 的值分别为:(1)064DH (2)0691H (3)05E0H 注意有符号数的符号位~~ 8。(1) MOV AX,0ABH 立即数寻址 无物理地址 (2)MOV AX,BX 寄存器寻址 同上 (3)MOV AX,[100] 直接寻址 20100H (4)MOV AX,V AL 直接寻址 20050H (5) MOV AX,[BX] 寄存器间接寻址 20100H (6) MOV AX,ES :[BX] 直接寻址 21100H (7) MOV AX,[BP] 寄存器间接寻址 20010H

微机原理与汇编语言程序设计课后习题参考答案

第一章习题与参考答案 1. 微处理器,微型计算机和微型计算机系统三者之间有何区别? 答:微处理器即CPU,它包括运算器、控制器、寄存器阵列和内部总线等部分,用于实现微型计算机的运算和控制功能,是微型计算机的核心;一台微型计算机由微处理器、内存储器、I/O接口电路以及总线构成;微型计算机系统则包括硬件系统和软件系统两大部分,其中硬件系统又包括微型计算机和外围设备;由此可见,微处理器是微型计算机的重要组成部分,而微型计算机系统又主要由微型计算机作为其硬件构成。 2. CPU在内部结构上由哪几部分构成?CPU应具备哪些主要功能? 答:CPU在内部结构上由运算器、控制器、寄存器阵列和内部总线等各部分构成,其主要功能是完成各种算数及逻辑运算,并实现对整个微型计算机控制,为此,其内部又必须具备传递和暂存数据的功能。 3. 累加器和其它通用寄存器相比有何不同? 答:累加器是通用寄存器之一,但累加器和其它通用寄存器相比又有其独特之处。累加器除了可用做通用寄存器存放数据外,对某些操作,一般操作前累加器用于存放一个操作数,操作后,累加器用于存放结果。 4. 微型计算机的总线有哪几类?总线结构的特点是什么? 答:微型计算机的总线包括地址总线、数据总线和控制总线三类,总线结构的特点是结构简单、可靠性高、易于设计生产和维护,更主要的是便于扩充。 5. 举出10个微型计算机应用的例子。 答:略 6. 计算机I/O接口有何用途?试列出8个I/O接口。 答:计算机I/O接口是连接计算机和外部设备的纽带和桥梁,它主要用于协调和控制计算机与外设之间的信息流通和交换。例如:串行通讯口(COM口)、并行打印机口、软盘驱动器接口、硬盘驱动器接口、光驱接口、显示器接口、音响设备接口、其它通用设备接口(USB、SCSI等)。 7. 现在,计算机主板上一般都包括哪些I/O接口?I/O接口卡如何与主板相连? 答:现在,计算机主板上一般包括串行通讯口、并行打印口、软盘驱动器接口、硬盘驱动器接口、光驱接口、USB接口等。象显示器适配器、网卡、modem卡等I/O接口卡一般通过总线插槽与主板相连。 8. 简述系统总线,AGP总线,PCI总线及ISA总线的作用。 答:系统总线是CPU与存储器及桥接器之间传递信息的通道,AGP总线专门用与连接CPU与显示器适配器,PCI总线一般用于连接一些高速外设接口作为高速外设与CPU或内存交换信息的通道,而ISA总线一般用于连接一些非高速外设接口作为非高速外设与CPU或内存交换信息的通道。 9. 试说明计算机用户,计算机软件,计算机硬件三者的相互关系。 答:计算机用户,计算机软件系统,计算机硬件系统共同构成一个计算机应用系统,三者在该系统中处于三个不同的层次。计算机用户处于最高层,计算机软件处于中间层,计算机硬件系统处于最下层。在这里计算机用户是系统的主宰,他们通过软件系统与硬件系统发生关系,指挥计算机硬件完成指定的任务。即,计算机用户使用程序设计语言编制应用程序,在系统软件的干预下使用硬件系统进行工作。 10. 简述DOS操作系统各部分的作用及相互关系。 答:DOS操作系统包括3个模块:DOS-Shell(https://www.wendangku.net/doc/7f19288551.html,)、DOS-Kernel(https://www.wendangku.net/doc/7f19288551.html,)、DOS-BIOS(https://www.wendangku.net/doc/7f19288551.html,). DOS-Shell模块对用户输入的DOS命令行或应用程序行作出响应。即负责DOS命令的解释和

汇编语言程序设计课后习题解答

《汇编语言程序设计》(宋人杰主编)课后习题解答 第1章汇编语言基础知识 1.简述汇编语言源程序、汇编程序、和目标程序的关系。 答:用汇编语言编写的程序称为汇编源程序;汇编源程序在汇编程序的翻译下转换成计算机语言变成目标程序。 2. 简述汇编语言的优缺点。 答:(1) 汇编语言的优点: ①可有效地访问、控制计算机各种硬件设备,如磁盘、存储器、CPU、I/O端口等。. ②目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。 ③可与高级语言配合使用,应用十分广泛。 (2) 汇编语言的缺点: ①通用性和可移植性较差 ②相对于高级语言来说较繁锁、易出错、不够直观。 3.CPU的寻址能力为8KB,那么它的地址总线的宽度为多少? 答:13 4. 1KB的存储器有多少个存储单元? 答:1024个字节。 5. 指令中的逻辑地址由哪两部分组成? 答:指令中的逻辑地址由段基址和偏移量组成。 6. 以下为用段基址:偏移量形式表示的内存地址,试计算它们的物理地址。 (1) 12F8:0100 (2) 1A2F:0103 (3) 1A3F:0003 (4) 1A3F:A1FF 答: (1) 13080H (2) 1A3F3H (3) 1A3F3H (4) 245EFH 7. 自12FA:0000开始的内存单元中存放以下数据(用十六进制形式表示): 03 06 11 A3 13 01,试分别写出12FA:0002的字节型数据、字型数据及双字型数据的值。 答:字节型数据:11H 字型数据:0A311H 双字型数据:0113A311H 8. 内存中某单元的物理地址是19318H,段基地址为1916H,则段内偏移地址为多少?若 段内偏移地址为2228H,则段基地址为多少? 答:若段基地址为1916H,则段内偏移地址为01B8H;若段内偏移地址为2228H,则段基地址为170FH 9. 在实模式环境中,一个段最长不能超过多少字节? 答:64KB 10. 实模式可寻址的内存范围是多少? 答:1MB

汇编语言程序设计答案

汇编语言程序设计答案2篇 汇编语言程序设计答案(一) 汇编语言是一种底层的计算机语言,通过程序设计来控制计算机 硬件的运行。它是计算机体系结构的基础,可以用来编写高效的程序,实现各种任务。下面是两个关于汇编语言程序设计的答案,帮助初学 者理解汇编语言的基本概念和编程技巧。 答案一: ```assembly mov ax, 5 mov bx, 6 add ax, bx ``` 这个程序的作用是将寄存器ax的值设置为5,寄存器bx的值设置为6,然后将ax和bx的值相加,结果保存在ax中。最后,ax的值为11。 答案二: ```assembly mov ax, 10 mov bx, 2 div bx ``` 这个程序的作用是将寄存器ax的值设置为10,寄存器bx的值设置为2,然后将ax和bx的值相除,商保存在ax中,余数保存在dx中。最后,ax的值为5,dx的值为0。 通过以上两个简单的答案,我们可以看到汇编语言的基本操作和 计算能力。编写汇编语言程序需要了解计算机的底层架构和指令集, 因为每种计算机体系结构都有不同的汇编语言。因此,学习汇编语言 需要掌握计算机组成原理和计算机体系结构的基本知识。 在编写汇编语言程序时,我们通常需要使用一些常见的指令,例

如mov(数据传送)、add(加法运算)、sub(减法运算)、mul(乘法运算)、div(除法运算)、jmp(跳转指令)等等。掌握这些常用指令和相应的语法规则是学习汇编语言的基础。 另外,汇编语言程序设计也需要学习如何使用寄存器和内存。寄存器是存储在CPU内部的非常快速的存储器,可以暂时存储数据和指令。CPU可以直接读取和写入寄存器中的数据。内存是存储在计算机主存储器中的大量数据和指令。CPU需要通过地址来访问内存中的数据和指令。 要编写高效的汇编语言程序,我们需要理解计算机的硬件原理和底层运行机制。了解汇编语言可以提供对程序的细粒度控制,对程序性能的优化有很大帮助。 总的来说,汇编语言程序设计是一项复杂而有趣的任务。掌握汇编语言可以让程序员对计算机的运行原理有更深入的理解,也能开发出更高效的程序。学习汇编语言需要耐心和熟练,但一旦掌握了它的技巧,将会有很多有趣的事情等待你去探索。 汇编语言程序设计答案(二) 汇编语言是一种底层的计算机语言,通过控制计算机硬件的运行来实现各种任务。在这里,我们将提供两个关于汇编语言程序设计的答案,帮助初学者理解汇编语言的基本概念和编程技巧。 答案一: ```assembly mov ax, 1 mov bx, 2 cmp ax, bx jg bigger jl smaller jmp end bigger: mov cx, ax jmp end

汇编语言程序设计课后习题答案习题2详解

汇编语言程序设计课后习题答案习题2详解 习题2 2.1写出从汇编语言源程序的建立到产生可执行文件的步骤和上机操作命令。步骤: 1.编辑形成MY.ASM文件(MY为文件名) 2.汇编形成MY.OBJ文件 3.连接形成MYE某E文件 上机操作: 1.进入do命令行方式 2.在汇编语言的系统工作文件目录下,键入: EditMY.ASM按回车键编辑3.MASMMY按回车键汇编 4.LINKMY按回车键连接 5.MY按回车键运行 6.DEBUGMY.E某E按回车键进行调试。 2.2列表文件.LST实在什么阶段产生的?列表文件有哪些内容?列表文件是在汇编的时候产生的 执行MASM程序名程序名程序名按回车键就会在汇编的同时产生列表文件。 列表文件里有源程序和机器语言清单,指令和变量的偏移地址等等。 2.3写出定义一个代码段的语句,段名为MYPRG。 MYPRGSEGMENT ASSUMECS:MYPRGStart:

CodeendEndtart 2.4源程序中用什么语句来结束程序的执行?用什么语句来表示程序 的结束和指出程序执行的起点。MOVah,4ch INT21h结束程序的执行并返回到操作系统。Codeend程序结束 Endtart指出程序执行的起点 2.5汇编语言源程序的文件扩展名是什么?把他改为.e某e扩展名以后, 可以认为是可执行程序么? 答:源文件的扩展名为.ASM。改为.e某e后不可能是可执行程序, 源 文件只有经历汇编行成机器指令,然后连接才能形成可执行程序2.6 列出子目录C:\\YOUPRG下的扩张名为.ASM的所有文件,在D 盘根目录下建立一个子目录,并进子目录MYPRG,再把C:YOUPRG下 的文件YOU.ASM复制到D:\\MYPRG下。写出完成以上要求的DOS命令。答:C:\\YOUPRG>DIY某.ASMC:\\YOUPRG>D: D:\\MDMYPRGD:\\CDMYPRGD:\\MYPRG>COPYC:\\YOUPRG>YOU.ASMD:\\MYPRG 2.7 下图为DEBUG调入的可执行程序,回答以下问题:(1)程序的起始 物理地址是多少?结束地址是多少(2)CS寄存器的值是什么?(3)程 序的功能是什么? (4)写出查看DS:0处内容的DEBUG命令。(5)程序中2处的 int21指令执行后有什么结果?(6)如果要运行这个程序应该用什么

汇编语言程序设计课后答案

汇编语言程序设计(第二版) 钱晓捷习题答案 第二章〔01〕 2.1 〔1〕A*=1200h 〔2〕A*=0100h 〔3〕A*=4C2Ah 〔4〕A*=3412h 〔5〕A*=4C2Ah 〔6〕A*=7856h 〔7〕A*=65B7h 2.2(1)两操作数类型不匹配 (2) IP指令指针制止用户访问 (3)立即数不允许传给段存放器 (4)段存放器之间不允许传送 (5)两操作数类型不匹配 (6)目的操作数应为[ BP ] (7)源操作数应为 [B*+DI] (8)立即数不能作目的操作数 2.3 lea b*,table;获取table的首地址,B*=200H mov al,8;传送欲转换的数字,AL=8 *lat;转换为格雷码,AL=12H 2.4 堆栈是一种按“先进后出〞原则存取数据的存储区域。 堆栈的两种根本操作是压栈和出栈,对应的指令是PUSH和POP。 2.5 mov a*,8057h push a* mov a*,0f79h push a*

pop b* ;b*=0f79h pop [b*] ;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.7W=*+Y+24-Z 2.8 〔1〕ADD D*,B* 〔2〕ADD AL,[B*+SI] 〔3〕ADD [B*+0B2H],C* 〔4〕ADD WORD PTR [0520H],3412H 〔5〕ADD AL,0A0H 2.9;为了防止与操作数地址混淆,将题中*,Y,Z,V 字操作数改为A,B,C,D mov a*,*;a*=A imul Y;d*,a* = A*B (将操作数看作符号数,以下同〕 mov c*,a* mov b*,d*;b*,a* <-- d*,a* =A*B mov a*,Z;a* = C cwd;d*,a* =C〔扩展符号后为双字〕 add c*,a* adc b*,d*;b*,c* <-- b*,c*+d*,a*=A*B+C

汇编语言程序设计课后习题答案(第二版_沈美明)(无删减)

汇编语言程序设计课后习题答案(第二版_沈美明)(无删减) 第一章 1.1 用降幂法和除法将下列十进制数转换为二进制数和十六进制数: (1) 369 (2) 10000 (3) 4095 (4) 32767 答:(1) 369=1 0111 0001B=171H (2) 10000=10 0111 0001 0000B=2710H (3) 4095=1111 1111 1111B=FFFH (4) 32767=111 1111 1111 1111B=7FFFH 1.2 将下列二进制数转换为十六进制数和十进制数: (1) 10 1101 (2) 1000 0000 (3) 1111 1111 1111 1111 (4) 1111 1111 答:(1) 10 1101B=2DH=45 (2) 1000 0000B=80H=128 (3) 1111 1111 1111 1111B=FFFFH=65535 (4) 1111 1111B=FFH=255 1.3 将下列十六进制数转换为二进制数和十进制数: (1) FA (2) 5B (3) FFFE (4) 1234 答:(1) FAH=1111 1010B=250 (2) 5BH=101 1011B=91 (3) FFFEH=1111 1111 1111 1110B=65534 (4) 1234H=1 0010 0011 0100B=4660 1.4 完成下列十六进制数的运算,并转换为十进制数进行校核: (1) 3A+B7 (2) 1234+AF (3) ABCD-FE (4) 7AB×6F 答:(1) 3A+B7H=F1H=241 (2) 1234+AFH=12E3H=4835 (3) ABCD-FEH=AACFH=43727 (4) 7AB×6FH=35325H=217893 1.5 下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十六进制数表 示其运算结果。 (1) (-85)+76 (2) 85+(-76) (3) 85-76 (4) 85-(-76) (5) (-85)-76 (6) -85-(-76) 答:(1) (-85)+76=1010 1011B+0100 1100B=1111 0111B=0F7H;CF=0;OF=0 (2) 85+(-76)=0101 0101B+1011 0100B=0000 1001B=09H;CF=1;OF=0 (3) 85-76=0101 0101B-0100 1100B=0101 0101B+1011 0100B=0000 1001B=09H;CF=0;OF=0 (4) 85-(-76)=0101 0101B-1011 0100B=0101 0101B+0100 1100B=10100001B=0A1H;CF=0;OF=1 (5) (-85)-76=1010 1011B-0100 1100B=1010 1011B+1011 0100B=0101 1111B=5FH; CF=0;OF=1 (6) -85-(-76)=1010 1011B-1011 0100B=1010 1011B+0100 1100B=11110111B=0F7H;CF=0;OF=0 1.6 下列各数为十六进制表示的8位二进制数,请

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

汇编语言程序设计(钱晓捷)课后答案 汇编语言程序设计(第二版) 钱晓捷习题答案 第二章(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 DI,转到above执行 cmp dx,di ja above ;=jnbe above (2)若AX > SI,转到greater执行 cmp ax,si jg greater ;=jnle greater (3)若CX = 0,转到zero执行 cmp cx,0 jcxz zero jz zero (4)若AX-SI产生溢出,转到overflow执行; cmp ax,di

新版汇编语言程序设计【课后习题答案】 钱晓捷 主编 电子工业出版社

新版汇编语言程序设计【课后习题答案】钱晓捷主编电子工业出版社第2章8086的指令系统〔全〕 第2章8086的指令系统 〔习题2.1〕DS=2000H、BX=0100H、SI=0002H,存储单元[20210H]~[20213H]依次存放12 34 56 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] 〔解答〕 〔1〕AX=1200H 〔2〕AX=0100H 〔3〕AX=4C2AH ;偏移地址=bx=0100h 〔4〕AX=3412H ;偏移地址=bx=0100h 〔5〕AX=4C2AH ;偏移地址=bx+1100h=1200h 〔6〕AX=7856H ;偏移地址=bx+si=0100h+0002h=0102h 〔7〕AX=65B7H ;偏移地址=bx+si+1100h=0100h+0002h+1100h=1202h 〔习题2.2〕指出以下指令的错误 〔1〕mov cx,dl 〔2〕mov ip,ax 〔3〕mov es,1234h 〔4〕mov es,ds 〔5〕mov al,300 〔6〕mov [sp],ax 〔7〕mov ax,bx+di 〔8〕mov 20h,ah 〔解答〕 〔1〕两操作数类型不匹配 〔2〕IP指令指针禁止用户访问 〔3〕立即数不允许传给段存放器 〔4〕段存放器之间不允许传送 〔5〕两操作数类型不匹配 〔6〕目的操作数应为[ SI ] 〔7〕源操作数应为[BX+DI] 〔8〕立即数不能作目的操作数 〔习题2.3〕数字0 ~ 9对应的格雷码依次为:18H、34H、05H、06H、09H、0AH、0CH、

相关文档
相关文档 最新文档