via是什么意思4-1.已知如下定义:
VAR1DB4动画故事
VAR2DB10
CNST1EQU12
试指出下列指令的错误原因:
(1)MOV CNST1,CX(2)MOV VAR1,AX
(3)CMP VAR1,VAR2(4)CNST1EQU24
解:
(1)目的操作数不能是立即数;
(2)VAR1单元定义为字节类型,而AX为字;
(3)8086/8088中两个内存单元不能直接比较;
英文歌曲歌词(4)同一符号名不允许用EQU重复定义。
4-2.某人定义了如下数据段:
DATA SEGMENT AT1000H
ORG100H
VAL1DB11H
VAL2DW22H,33H
VAL3DB5DUP(44H)
DATA ENDS
试指明该数据段中偏移地址从100H到109H的各存贮单元的内容。解:
100H:11H
101H:22H
102H:00H
103H:33H
104H:00H
105H:44H
106H:44H
107H:44H
108H:44H
109H:44H
4-3.对于下面的数据定义,写出各条指令执行后的结果:
DATA SEGMENT
ORG0100H
AAAA DW0A244H
BBBB DB33H,66H,92H,29H
CCCC EQU WORD PTR BBBB
DDDD DB‘ABCD’
EEEE EQU$-DDDD
DATA ENDS
(1)MOV AX,AAAA AL=()
(2)MOV BX,CCCC BH=()
(3)MOV DX,OFFSET DDDD DL=()
(4)MOV CL,EEEE CL=()能上能下
解:
(1)MOV AX,AAAA AL=(44H)
(2)MOV BX,CCCC BH=(66H)
(3)MOV DX,OFFSET DDDD DL=(06H)
(4)MOV CL,EEEE CL=(04H)
4-4.试编程序将内存从50000H到5FFFFH的每个单元均写入数55H,并再逐个单元读出比较,看写入的与读出的是否一致。若全对,则将AL置0;只要有错,则将AL置0FFH。
解:
START:MOV AX,5000H
MOV DS,AX
MOV SI,0
MOV CX,0FFFFH
LOOP1:MOV BYTE PTR[SI],55H
MOV AL,[SI]
CMP AL,55H
JNZ LOOPERR
LOOP2:INC SI
hitbLOOP LOOP1
MOV BYTE PTR[SI],55H;最后一个单元
46级成绩查询MOV AL,[SI]
CMP AL,55H
JNZ LOOPERR
MOV AL,0;全对
JMP LOOPOUT
LOOPERR:MOV AL,0FFH
LOOPOUT:NOP
4-5.编写一个子程序,对AL中的ASCII字符添加偶校验位(bit7),即:使AL中的“1”的个数为偶数。
解:
ADDPARITY PROC NEAR
AND AL,7FH
JP ADDEXIT
OR AL,80H
ADDEXIT:RET
ADDPARITY ENDP
4-6.利用上题的子程序,编程对内存物理地址10000H开始的1024个单元的ASCII字符加上偶校验位。
解:
START:MOV AX,1000H
MOV DS,AX
MOV SI,0
MOV CX,1024
LOOP1:MOV AL,[SI]
CALL ADDPARITY
MOV[SI],AL
INC SI
LOOP LOOP1
4-7、试写一子程序,完成对一个8位无符号数乘6的操作。要求:(1)只能用传送、加法及移位指令;(2)入口参数(即8位无符号数)放于AL中,出口参数(即乘6后的结果)放于AX。
解:
MULTI6PROC NEAR
PUSH BX
MOV AH,0
SHL AX,1;乘2
MOV BX,AX
SHL AX,1;乘4
ADD AX,BX;乘6
POP BX
RET
MULTI6ENDP
新年愿望的英文
4-8.给定如下程序片段:
START:MOV AX,1000H,
MOV SS,AX
MOV SP,000FH
MOV AX,1000H
PUSH AX
MOV BX,5439H
PUSH BX
activeCALL NEAR PTR SUBRT
POP AX
STOP0:HLT
SUBRT:PUSH BP
MOV BP,SP
VAAX:MOV AX,[BP+4]
ADD AX,456AH
MOV[BP+4],AX
POP BP
RET4
问:(1)程序执行到标号为SUBRT处的指令时,SP=?(2)执行完标号为VAAX的MOV指令后,AX=?(3)执行到标号为STOP0处的指令时:SP=?AX=?BX=?CF=?SF=?OF=?
解:
(1)程序执行完标号为SUBRT处的“PUSH BP”指令后,SP=0006H
(2)执行完标号为VAAX的MOV指令后,AX=5439H
(3)程序执行到标号为STOP0处的指令时(实际执行“HLT”指令之前):
SP=000CH
AX=99A3H
BX=5439H
以及以下标志寄存器的内容:
CF=0
SF=1
OF=1
4-9.自符号地址为MARK开始的内存缓冲区中,存有100个学生的某门课的考试成绩。试找
出成绩不低于80分以及成绩低于60分的学生个数,同时求出最高的成绩分及最低的成绩分数,并将它们分别存于符号地址为PST、FST、MAXMK及MINMK的四个单元中。要求写出
完整的数据段及代码段。
解:
DATA SEGMENT
MARK DB100DUP(?)
PST DW0
FST DW0
MAXMK DB0
MINMK DB100
DATA ENDS
涉及到CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV CX,100
MOV BX,OFFSET MARK
AGAIN:MOV AL,[BX]
CMP AL,MAXMK
JC HIGHL
MOV MAXMK,AL;update highest mark
HIGHL:CMP AL,MINMK
JNC MKCHK
MOV MINMK,AL;update lowest mark
MKCHK:CMP AL,60
JNC HIGHMK
INC FST;increa the no.of students who mark<60 JMP CHKFH
HIGHMK:CMP AL,80
JC CHKFH
INC PST;increa the no.of students who mark>=80 CHKFH:INC BX
LOOP AGAIN
MOV AX,4C00H冰与火之歌权力的游戏
INT21H
CODE ENDS
END START