微机原理及应用(陈继红、徐晨)课后习题答案 下载本文

微机原理及应用(陈继红、徐晨)课后习题答案

STOSB/STOSW 无存放目的地 址 无

3.29 用串操作指令设计实现以下功能的程序段:首先将 100H个数从 2170H处搬到

1000H处,然后,从中检索相等于

VAL中字符的单元,并将此单元值换成空格符。 解答:

START:MOV AX, DS MOV ES, AX MOV SI, 2170H MOV DI, 1000H MOV CX, 100H CLD

REP MOVSB

ANOTHER:MOV DI, 1000H MOV AL, VAL MOV CX, 100H CLD

AGE: SCASB JZ FIN DEC CX JNZ AGE JMP OVER

FIN: MOV BYTE PTR[DI-1],20H CMP CX,0 JNZ AGE OVER: RET

3.30求双字长数 DX∶AX的相反数。 答: NEG DX NEG AX SBB DX,0

3.31试对数据段偏移地址为

101H单元中的单字节数求补后存入 102H,最高位不变, 低

7位取反存入 103H,高 4位置 1,低

4位不变,存入 104H。 答:

MOV AX,[0101H] MOV BX,AX MOV CX,AX NOT AX

MOV [0102H],AX XOR BX,7FH

MOV [0103H],BX AND CX,0F0H MOV [0104H]

3.32 试编写一个程序,比较两个同长字符串 STRING1和

STRING2所含字符是否相同, 若相同

MATCH单元赋值 1,若不相同 MATCH单元赋值 0。 答案: 6

微机原理及应用(陈继红、徐晨)课后习题答案

程序段为: ;数据定义

STRING1 DB ‘ABCDEFGHIJK

STRING2 DB ‘ABCDFGKJMATCH DB ? ;功能代码

MOV AX,SEG STRING1 MOV DS,AX

MOV AX,SEG STRING2 MOV ES,AX LEA SI, STRING1 LEA DI, STRING2

MOV CX, STRING1- STRING2 CLD

REPE CMPSB JZ EQUAL

MOV MATCH,0 JMP OVER

EQUAL:MOV MATCH,1 OVER:HLT

;串

1,作为源串 ;串

2,作为目标串 ;定义

MATCH单元

;源串段地址送 DS

;目标串段地址送 ES

;源串偏移地址送 SI

;目标串偏移地址送 DI

;重复次数送 CX

;地址增

;相等继续比较,不相等退出 ;退出时,若

ZF=1,表示两串相等 ;不相同,

MATCH单元赋值 0

;相同

MATCH单元赋值 1

3.34编写代码 ,计算

a+10b+100c+20d,其中

a、b、c、d均为单字节无符号数,结果为 16

位,存入

SUM开始的两单元中。 data segment ma db 12 mb db 21 mc db 86 md db 150 SUM dw 0

data ends code segment

assume ds:data,cs:code

start:mov ax,data mov ds,ax mov dh,0 mov dl,ma mov ah,0 mov al,10 mul mb add dx,ax mov ah,0 mov al,100 mul mc add dx,ax

mov ah,0 7