几个汇编试卷题目!在线等~~~做完了加分

来源:百度知道 编辑:UC知道 时间:2024/05/30 18:36:52
3分析下列程序的运行结果。
DATA SEGMENT
BUF DB 3,5,6,2,7,4,0,9,1
COUNT EQU $-BUF
STR DB ‘THE RESULT IS:$’
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX, DATA
MOV DS,AX
MOV CX,COUNT
LEA BX,BUF
MOV AL,[BX]
LP: INC BX
CMP AL,[BX]
JA NEXT
MOV AL,[BX]
NEXT: LOOP LP
MOV DX,OFFSET STR
MOV AH,09H
INT 21H
ADD AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
4.已知X=-101001B,Y=100001B,用变形补码求X-Y。
5. 改正下列程序中的错误。
DATA SEGMENT
BUF DB 'The Result is:$'
X DB 01H
Y DB 02H
Z DB ?
DATA END
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,
START: MOV AX, DATA
MOV DS,AX
ADD X,Y
MOV AL,X
MOV Z,AL
MOV DX,OFFSET BUF

3
THE RESULT IS:T(因MOV CX,COUNT ,其实应该MOV CX,COUNT-1)
4
因为X=-101001B,Y=100001B
所以变形补码[X]补=11101001,[Y]补=00100001
X-Y=11101001-00100001
=11001000
可见结果并未溢出
5
第6行DATA END 改 DATA ENDS //格式错误
第11-12行
ADD X,Y //存储器与存储器之间不能直接加
MOV AL,X
改为
MOV AL,X
ADD AL,Y
第18行MOV DX,Z //源与目的参数位数不相同
改为MOV DL,Z

DATA SEGMENT
BUF DB 3,5,6
MAX DB 0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX, DATA
MOV DS,AX
MOV CX,2
MOV SI,BUF
MOV AL,[SI]
LOOP1:
INC SI
CMP AL,[SI]
JA LOOP2
MOV AL,[SI]
LOOP2:
DEC CX
LOOP LOOP1
MOV MAX,AL
MOV AH,4C
INT 21H
CODE ENDS
ENDS START