《微型计算机原理及应用》习题题解(3)

2019-08-30 20:43

第四章 8086 汇编语言程序设计

4-1 画出下列语句中的数据在存储器中的存储情况。 【解答】 ARRAYB 3FH 63H 41H 42H 43H 44H ? ? ? 01H 03H 01H 03H ARRAYW 34H 12H 05H 00H 42H 41H 44H 43H ? ? 01H 00H 03H 00H 01H 00H 03H

00H 4-2 DLENGTH的值是多少?

【解答】 (DLENGTH)=0026H (即38) 4-3 程序中数据定义如下:

ARRAY DB ‘ABCDEF’ RESULT DB ?

TABLE DW 20 DUP(?)

【解答】则执行指令后结果如下:(按给定指令顺序) AX=0001H

BX=0002H

CX=0014H (20) DX=0001H

SI=0028H (40) DI=0001H

11

4-4 指令AND AX,7315H AND 0FFH中,两个AND有什么区别?这两个AND 操作分别在什么时候执行?

【解答】第一个 AND是“与”指令操作码,第二个AND是“与”运算符。 第一个AND在程序运行过程中执行;第二个AND是在对源程序“汇编”的过程中执行。

4-5 设BX=1034H,则执行下列指令后,AX和CX各为多少?

MOV AX,BX AND 0FFH

MOV CX,BX EQ 1234H 若BX=1234H,则结果如何?

【解答】当BX=1034H时 AX=0034H CX=0000H

当BX=1234H时 AX=0034H CX=0FFFFH

4-6 设已知语句 :

ORG 0024H

DATA1 DW 4,12H,$+4

则执行指令MOV AX,DATA1+4后AX的值是多少 【解答】 AX=002CH

4-7 已知数据定义语句为: BUFFER DB 16 DUP (0,2 DUP(1))

则其中字数据单元内容为0100H的单元数是多少个? 又其中字数据单元内容为0001H的单元数是多少个? 【存储示意图】 BUFFER 00H 【解答】参看左边存储示意图可知 01H 其中字数据单元内容为0100H的单元 01H 数为16个。 00H 字数据单元内容为0001H的单元数为01H

15个。 01H

00H

01H

01H

00H

01H

01H

48个字节 00H

01H

01H 00H 01H 01H 00H 01H 01H …. …. …. 00H 01H 01H

12

4-8 要在以DA1为首址的数据区中依次存放下列数据:'A','B',0,0,'C','D',0,0,请分别用DB、DW和DD语句实现。

【解答】DA1 DB 'A','B',0,0,'C','D',0,0 DA1 DW 'BA',0,'DC',0

DA1 DD 00004241H,00004443H

4-9 找出数组中的最大值和最小值。

【解答】DATA SEGMENT

ARRAY DB 3,6,89,99,50,11,3,34,68,127 N EQU $-ARRAY MAX DB ? MIN DB ? DATA ENDS

CODE SEGMENT

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

MOV SI,OFFSET ARRAY MOV CX,N-1 MOV AL,[SI] MOV BL,[SI] LP1: INC SI

CMP AL,[SI] JB NEXT1 CMP BL,[SI] JA NEXT2 JMP NEXT NEXT1: MOV AL,[SI] JMP NEXT NEXT2: MOV BL,[SI] NEXT: LOOP LP1

MOV MAX,AL MOV MIN,BL MOV AX,4CH INT 21H CODE ENDS

END START

4-10 将有符号数组中的正数、负数分别存储,并统计其正数和负数的个数。

【解答】DATA SEGMENT

ARRAY DW -3,6,-89,99,-50,11,3,34,68,127,-128,1,4,6,100,-100,-2,-5,0,3 N EQU ($-ARRAY)/2 PLUS DW N DUP(?) NEGA DW N DUP(?) NP DB 0 NN DB 0 DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA BX,ARRAY LEA SI,PLUS LEA DI,NEGA MOV CX,N LP: MOV AX,[BX]

13

CMP AX,0 JGE LP1

MOV [DI],AX ADD DI,2 INC NN JMP NEXT LP1: MOV [SI],AX ADD SI,2 INC NP NEXT: INC BX INC BX LOOP LP

MOV AX,4CH INT 21H CODE ENDS

END START

4-11 编写程序使该字符串能符合偶校验的要求。

【解答】DATA SEGMENT

STRING DB 'ABCDEFGHIJKLMNOPQ','$' N EQU $-STRING DATA ENDS

CODE SEGMENT

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

LEA BX,STRING MOV CX,N LP: MOV AL,[BX] AND AL,AL JP NEXT OR AL,80H MOV [BX],AL NEXT: INC BX LOOP LP

MOV AX,4CH INT 21H CODE ENDS

END START

4-12 编写程序把CHAR、CHAR1和CHAR2中的英文字母字符数据按英文字母次序排列。

【解答】DATA SEGMENT

CHAR DB 'H67JFDF61235--==65KJ8922' CHAR1 DB '8fggYYUF89Aljkj'

CHAR2 DB 'HWOPY65bxnmbcvb??URYT\\#$56@$' N EQU $-CHAR BUFFER DB N DUP(?) DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA SI,CHAR LEA DI,BUFFER MOV BX,0

14

MOV CX,N LP: MOV AL,[SI] CMP AL,'A' JB LP1

CMP AL,'Z' JA LP2

LP3: MOV [DI],AL INC DI INC BX JMP LP1

LP2: CMP AL,'a' JB LP1 CMP AL,'z' JA LP1 JMP LP3 LP1: INC SI LOOP LP

MOV CX,BX DEC CX

LOOP1: MOV DI,CX MOV SI,0

LOOP2: MOV AL,BUFFER[SI] CMP AL,BUFFER[SI+1] JBE COTINUE

XCHG AL,BUFFER[SI+1] MOV BUFFER[SI],AL COTINUE:INC SI

LOOP LOOP2 MOV CX,DI LOOP LOOP1

MOV AX,4CH INT 21H CODE ENDS

END START

4-13 BUF1和BUF2都有一个4字节无符号数据,存放次序为低位在前,编写程序进行求和,并将结果存入SUM中,需计及可能产生的进位。

【解答】DATA SEGMENT

BUF1 DD 8899AABBH BUF2 DD 90123456H SUM DW 3 DUP(?) DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV BX,0

MOV AX,WORD PTR BUF1 ADD AX,WORD PTR BUF2 MOV SUM,AX

MOV AX,WORD PTR BUF1+2 ADC AX,WORD PTR BUF2+2 MOV SUM+2,AX ADC BX,0

MOV SUM+4,BX MOV AX,4CH

15


《微型计算机原理及应用》习题题解(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:班组反违章管理实施细则

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

马上注册会员

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