精品文档
MOV CX,3
LOP: MOV AL,[BX] XOR AL,0FFH MOV [SI],AL LOOP LOP CLC
LEA SI,RES MOV CX,3
LOP1: MOV AL,[SI] ADC AL,0 MOV [SI],AL LOOP LOP1 INT 3 CODE ENDS END START
8.已知从数据段BUF单元开始存放字节型的带符号数X和Y,请设计计算Y=6X+8的程序。
答:DATA SEGMENT
BUF DB 97H,87H ;X=97H和Y=87H DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA MOV DS,AX MOV AH,0 MOV AL,BUF SHL AX,1 MOV BX,AX SHL AX,1 ADD AX,BX ADD AX,8 MOV BUF+1,AL MOV BUF+2,AH INT 3 CODE ENDS
收集于网络,如有侵权请联系管理员删除
精品文档
END START
9.已知X、Y是字节型的无符号数,请设计程序计算: X/4 (0≤x<10) Y= X-10 (10≤X<20) 答:程序如下:
DATA SEGMENT X DB 84H Y DB 0 DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX MOV AL,X CMP AL,10 JAE NEXT SHR AL,1 SHR AL,1 JMP EN NEXT: SUB AL,10 EN: MOV Y,AL INT 3 CODE ENDS
10.已知从数据段BUF单元开始存放15个字节型数据,请设计程序将其中负数和零分别送往MINUS和ZERO开始的存储器单元。
答:程序如下:
DATA SEGMENT BUF DB 15DUP(?) MINUS DB 15 DUP(?) ;存放负数 ZERO DB 15 DUP(?) ;存放0 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA ORG 100H START: MOV AX,DATA
收集于网络,如有侵权请联系管理员删除
精品文档
MOV DS,AX LEA BX,BUF MOV CX,15 LEA SI,MINUS LEA DI,ZERO LOP: MOV AL,[BX] CMP AL,0 JGE PZ MOV [SI],AL INC SI JMP NEXT PZ: JG NEXT MOV [DI],AL INC DI JMP NEXT NEXT: INC BX LOOP LOP INT 3 CODE ENDS END START
12.编一程序将字符串STR(长度20字节)中所有\代替。
答:程序如下: DATA SEGMENT STR DB 'G674GH&6TR677&74Y&98' DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA BX,STR MOV CX,20
LOP: MOV AL,[BX] CMP AL,'&' JNZ NEXT MOV AL,'$' MOV [BX],AL
收集于网络,如有侵权请联系管理员删除
\用精品文档
NEXT: INC BX LOOP LOP INT 3
CODE ENDS END START
13.请设计程序,将存储器单元2200~2210H清0、2250H~2260H置1、22AOH~
22BOH置55H。要求写出主程序和子程序。 解:程序如下: DATA SEGMENT BUF1 EQU 2200H BUF2 EQU 2200H BUF3 EQU 2200H DATA ENDS STACK SEGMENT
DB 20 DUP(?) STACK ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK BEG PROC FAR START: MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX LEA BX,BUF1
MOV AL,0 CALL FMOV LEA BX,BUF2 MOV AL,1 CALL FMOV LEA BX,BUF3 MOV AL,55H CALL FMOV
RET START ENDP
FMOV PROC NEAR MOV CX,16 LOP: MOV [BX],AL
收集于网络,如有侵权请联系管理员删除
精品文档
INC BX LOOP LOP
RET FMOV ENDP CODE ENDS END BEG
14.编写程序,要求:
(1)键盘键入两个字符串STRING1和STRING2
(2)比较两串所含字符是否完全相同,若相同则显示‘MATCH’,若不相同则显示 ‘NOMATCH’。
解:程序如下: DATA SEGMENT STRING1 DB 10 DB ?
DB 10 DUP(?) STRING2 DB 10 DB ?
DB 10 DUP(?)
XT DB 'MATCH',13,10,'$' BXT DB 'NO MATCH',13,10,'$' DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX
LEA DX,STRING1 MOV AH,10 INT 21H LEA DX,STRING2 MOV AH,10 INT 21H
MOV AL,STRING1+1 CMP AL,STRING2+1 JNZ BD
LEA SI,STRING1+2 LEA DI,STRING2+2 MOV CH,0
收集于网络,如有侵权请联系管理员删除
《微机原理与接口技术》第四章习题集与解答知识分享



