微机原理课后习题答案

2018-12-02 13:42

第3章 80X86指令系统

习题与思考题

1. 指出下列各指令中源操作数和目的操作数的寻址方式: ⑴ MOV BX,WORD PTR[2200H] ⑵ AAA

⑶ JUM 2200H ⑷ LES DI,[2100H] ⑸ MOV [BX+SI+8], BX 解答 ⑴ MOV BX, WORD PTR[2200H]

源操作数:直接寻址;目的操作数:寄存器寻址 ⑵ AAA 源操作数:寄存器寻址AL(也称隐含寻址);目的操作数:寄存器寻址 ⑶ JUM 2200H 程序转移段内直接寻址方式 ⑷ LES DI,[2100H]

源操作数:直接寻址;目的操作数:寄存器寻址 ⑸ MOV [BX+SI+8], BX 源操作数:寄存器寻址;目的操作数:基址加变址寻址

2. 若AX=0ABCDH,BX=7F8FH,CF=1。 求分别执行8086 CPU指令 ⑴ ADD AX,BX ⑵ ADC AX,BX ⑶ SBB AX,BX ⑷ NEG AX

⑸ AND AX,BX ⑹ OR AX,BX ⑺ XOR AX, BX ⑻ IMUL BL

后,AX寄存器中的内容,并指出标志寄存器SF,ZF,AF,PF,CF及OF的状态。 解答 ⑴ AX=2B5CH, SZAPCO=001110B ⑵ AX=2B5DH, SZAPCO=001010B ⑶ AX=2C3DH, SZAPCO=001001B ⑷ AX=5433H, SZAPCO=001110B ⑸ AX=2B8DH, SZAPCO=00X100B ⑹ AX=FFCFH, SZAPCO=10X100B ⑺ AX=D222H, SZAPCO=10X100B ⑻ AX=3283H, SZAPCO=XXXX11B

3. 若AL=78H,BL=87H, ⑴求执行指令 ADD AL,BL DAA

之后,AL=?、标志AF=?、CF=?

⑵ 若执行指令 SUB AL,BL与DAS后,AL=?、标志AF=?、CF=? 解答

⑴ AL=65H, AF=1, CF=1。 ⑵ AL=91H, AF=0, CF=1。

4. 指出下列指令中哪些是错误的,并指出错在何处? ⑴ MOV DL,[DX] ⑵ MOV ES,2000H ⑶ SUB [BX],[SI] ⑷ ADD AX,[BX+CX] ⑸ XCHG DS,[2400H] ⑹ DEC 15H

⑺ IN AL,DX ⑻ OUT 300H,AX 解答

⑴ 错,DX不能作为间接寻址的寄存器。 ⑵ 错,立即数不能直接送给段寄存器。 ⑶ 错,两个存储单元间内容不能直接相减。 ⑷ 错,CX寄存器不能作为变址寄存器。

⑸ 错,不允许段寄存器与存储单元内容进行交换 ⑹ 错,减1指令不能对段寄存器直接操作 ⑺ 对

⑻ 错,输出指令的地址若是16位,必须用DX间址。

5. 下列程序段执行后 AX=?

设数据段有: TABLE DW 100,200,300,400 ENTRY DW 3 代码段 对DS初始化 MOV BX,OFFSET TABLE MOV SI,ENTRY MOV AX,[BX+SI] 执行后 AX=2C00

6. 将AL中的8位二进制数按倒序方式重新排列,即AL原来为D7D6?D0,倒序后AL=D0D1?D7。

参考答案 ?

MOV CX, 8 L: SHL AL, 1 RCR BL, 1 LOOP L MOV AL, BL

?

7.若起始地址偏移量为2000H的内存单元存放有100个ASCII码字符,现给这些字符添加奇偶校验位(bit7),使每个字符中“1”的个数为偶数,在顺序输出到地址为100H的端口。 解答

MOV SI, 2000H MOV CX, 100 MOV DX, 100H

NEXT2: MOV AL, [SI] ;取字符串中字符送AL AND AL, 0FFH ;改变标志位

JPE NEXT1 ;“1”的个数为偶,bit7不变 OR AL, 80H ;“1”的个数为奇,bit7变为1

NEXT1: OUT DX, AL INC SI

LOOP NEXT2 MOV AH, 4CH INT 21H

8. 若SS=1000H,SP=2000H,AX=1234H,BX=5678H,FR=2115,试说明执行指令 PUSH AX PUSH BX PUSHF POP CX POP DX

之后,SP=? SS=? CX=? DX=? 并画图指出堆栈中各单元的内容。

解答: SS=1000H

SP=1FFEH CX=2115H DX=5678H 栈中各单元内容如下所示:

地址 RAM 11FFAH 11FFCH 11FFEH 12000H

2115 5678 1234 第4章 宏汇编语言

习题与思考题

1.画出以下变量在内存中存储的示意图。

D1 DB ‘A’,’123’,09H, 45 D2 DW ‘A’,’CD’,23H, 4567H D3 DD 1234H, 23456789H

2.设计子程序分别完成以下功能:

1)根据给定的参数值,判断该参数是偶数还是奇数。 2)把给定参数值的高、低数据位互换。

3.设计相应的宏完成以下功能: 1)把给定的参数按二进制显示。

2)求两个参数的和,并按十进制形式显示。

第5章 汇编语言程序设计

习题与思考题

1. 设数据段中有字节型单元NUMBER和FLAG,判断NUMBER与给定的X和Y的大小关系(XY,则置FLAG=1,若NUMBER

Data segment NUMBER db ? FLAG db ? Data ends Code segment

Assume cs: Code, ds: Data Beg: mov ax,data Mov ds,ax

mov al, X Mov bl, Y

Cmp NUMBER, X Jnc P1

Mov FLAG, 0FFH Jmp exit

P1: cmp NUMBER, Y Ja P2

Mov FLAG, 00H Jmp exit

P2: mov FLAG, 01H Exit: mov ah, 4ch Int 21h Code ends End Beg

2. 计算1+2+3+…+100,并把和保存在SUM单元中。 .486

DATA SEGMENT USE16

TT DB 1 SUM DW ?

DATA ENDS

CODE SEGMENT USE16 ASSUME CS:CODE,DS:DATA

BEG: MOV AX , DATA MOV DS, AX MOV CX, 100 MOV AX, 0

START: ADD AX, TT INC TT

LOOP START MOV SUM, AX MOV AH, 4CH MOV 21H

CODE ENDS

END BEG

3. 对一个给定的N数据,用冒泡排序法进行排序。 解答:.486

Data segment

Buf db ‘abcd18437hj’ Lens equ $-buf Count db lens Flag db ? Data ends Code segment

Assume cs: code, ds: data Beg: mov ax, data Mov ds, ax Again: dec count Jz done Mov flag, 0 Mov cx, count Mov si, offset buf Last: mov al, [si] Mov ah, [si+1] Cmp ah, al Jnc next Mov [si], ah Mv [si+1], al Mov flag, 1 Next: inc si Loop last Cmp flag, 1 Je again


微机原理课后习题答案.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中华职业教育社的历史脉络

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: