汇编语言补充作业和答案

  • 格式:doc
  • 大小:62.50 KB
  • 文档页数:12

下载文档原格式

  / 12
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《微机系统与接口技术》汇编补充作业

2.指出下列8088指令的错误:

(1)MOV AH, BX

(2)MOV [BX], [SI]

(3)MOV AX, [SI][DI]

(4)MOV MYDAT[BX][SI], ES:AX (5)MOV BL, 1000

(6)MOV CS, AX

(7)MOV DS, BP

(8)XLAT BX

(9)IN AX, 0382H

(10)OUT AX, 20H

答:(1 )两个操作数长度不一致

(2 )两个操作数不能都是存储器操作数

(3 )变址寻址方式不能使用两个变址寄存器

(4 )寄存器寻址没有段超越用法

(5 )两个操作数长度不一致(或1000 超出字节数据范围)

(6 )CS不能做目的寄存器

(7)段寄存器只能由通用寄存器对其操作,BP不能对通用寄存器进行操作(8 )XLAT 中BX是隐含操作数

(9 )IN指令中16 位端口地址要用DX作为操作数

(10)OUT指令两个操作数反了

3. 按要求编写下面的程序段

1)利用移位指令计算DX=3×AX+7×BX,假设为无符号数运算,无

进位。

2)用逻辑运算指令实现数字0~9的ASCII码与非压缩BCD码的互相

转换

3)把DX.AX中的双字右移4位

4)假设从4A00H:0000开始的4个字节中存放了4个非压缩的BCD

码,现在按照低地址对低位,高地址对高位的原则,将他们合并到

DX中。

答:1)MOV CX, AX

SHL AX, 1 ; AX*2

ADD AX, CX ; AX*3

MOV DX, BX

MOV CL, 3

SHL DX, CL ; BX*8

SUB DX, BX ; BX*7

ADD DX, AX

2)MOV AL, ’0’

LOP: AND AL, 0FH

INC AL

CMP AL, ‘:’

JNE LOP

MOV AL, 0

LOP1: OR AL, 30H

INC AL

CMP AL, 0AH

JNE LOP1

3) MOV CL,4

SHR AX,CL

MOV BL,DL

SHR DX,CL

SHL BL,CL

OR AH,BL

4)MOV AX, 4A00H

MOV DS, AX

MOV CL, 4

MOV SI, 0

MOV AL, [SI]

AND AL, 0FH

MOV DL, AL

INC SI

MOV AL, [SI]

SHL AL, CL

OR DL, AL

INC SI

MOV AL, [SI]

AND AL, 0FH

MOV DH, AL

INC SI

MOV AL, [SI]

SHL AL, CL

OR DH, AL

4. 请说明下面两段程序的功能

1)mov si, 600h

mov di, 601h

mov ax, ds

mov es, ax

mov cx, 256

std

rep movsb

2)cld

mov ax, 0fefh

mov cx, 5

mov bx, 3000h

mov es, bx

mov di, 2000h

rep stosw

答:1 )从DS:600H 开始将向低地址方向的256 字节向高地址移动一个字节位置。

2 )从3000:2000h 开始连续存放5 个0fefh

5.假设DS=2000H. BX=1256H, SI=528FH, 位移量TABLE=20A1H,

[232F7H]=3280H, [264E5H]=2450H, 试问执行下列段内间接寻址的转移指令后,转移到有效地址是什么?

i.JMP BX

ii.JMP TABLE[BX]

iii.JMP [BX][SI]

答: (1)1256H (2)3280H (3)2450H

6.判断下列程序段跳转到条件

(1)XOR AX, 1E1EH

JE EQUAL

(2)TEST AL, 10000001B

JNZ THERE

(3)CMP CX, 64H

JB THERE

答:(1) (AX)=1E1EH (2) (AL) 的最高位和/ 或最低位为1 (3) (CX)<64H

7.如果条件跳转指令的跳转目标范围超出-128~127的范围,该如何处

理?举例说明。

答:可以把跳转条件做一些调整,利用无条件跳转的跳转范围大,来达到目的,如:

CMP AX, 33

JE LONG

……; 大于127 字节

LONG:

改为:

CMP AX, 33

JNE SHOETER

JMP LONG

SHORTER:……; 大于127 字节

……

LONG:

8.按要求编写下面的程序段

1)当DX高4位全为0时,使AX=0,否则AX=-1。

2)已知字符串string包含有256BYTE的内容,将其中所有的‘$’符

号替换成空格(‘’)。

3)所谓回文字符串是指一个字符串正读和倒读都是一样的,例如字符

串‘ABCDEFFEDCBA’就是一个回文字符串,而字符串

‘ABCFDDCAB’就不是回文字符串。现在有一个字符串string,

包含有16个字节的内容,请编写程序段,判断该字符串是否为回

文字符串。

4)统计以‘$’字符结束的字符串string的字符个数。

答:

1 )

TEST DX, 0F0H

JZ OK1

XOR AX, AX

JMP OK2

OK1:MOV AX, -1

Ok2: …

2 )

MOV CX, 256

MOV AL, ‘$’

MOV AH, ‘’

LEA BX, string

LP: CMP [BX], AL

JNZ NEXT

MOV [BX], AH

NEXT:INC BX

DEC CX

JNZ LP