汇编语言上机作与业答案.doc
文本预览下载声明
上机考试题型答案
顺序结构程序
对于三个8位无符号数86H、34H和21H,编写R=86H×34H-21H的程序。
DATAS SEGMENT
NUM DB 86H,34H,21H
RESULT DW ?
DATAS ENDS
STACKS SEGMENT
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
LEA SI,NUM
LEA DI,RESULT
MOV AL,[SI]
MOV BL,[SI+1]
MUL BL ;乘法存入AX寄存器
MOV BL,[SI+2]
MOV BH,0
SUB AX,BX
MOV [DI],AX
MOV AH,4CH
INT 21H
CODES ENDS
END START
;=6935 (01B17H)
将字节存储单元A中的内容左移4位,B中的内容右移一位。要求移位后的空位为0。
DATAS SEGMENT
A DB 34H
B DB 0A2H
DATAS ENDS
STACKS SEGMENT
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV CL,4
SHL A,CL
SHR B,1
MOV AH,4CH
INT 21H
CODES ENDS
END START
分支结构程序
设计字符比较程序,两个字符相同时,显示YES;不相国时,显示NO。
DATAS SEGMENT
D1 DB A
D2 DB B
RES1 DB YES,$
RES2 DB NO,$
DATAS ENDS
STACKS SEGMENT
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV AL,D1
MOV BL,D2
CMP AL,BL
JNE NEXT1
LEA DX,RES1
JMP NEXT2
NEXT1:
LEA DX,RES2
NEXT2:
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
CODES ENDS
END START
设存储单元A和B各有一个无符号数,比较其大小,将较大数送A单元。
DATAS SEGMENT
A DB 0DEH
B DB 0B4H
DATAS ENDS
STACKS SEGMENT
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV AL,A
CMP AL,B
JNC NEXT
XCHG AL,B
MOV A,AL
NEXT:
MOV AH,4CH
INT 21H
CODES ENDS
END START
计算符号函数SNG(X)的值。已知符号函数SNG(X)的值Y有:
1 当X 0时
Y= 0 当X=0时
-1 当X 0时
DATAS SEGMENT
X DB -3
Y DB ?
DATAS ENDS
STACKS SEGMENT
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV AL,X
MOV BL,Y
CMP AX,0
JL NEXT2
JZ NEXT1
MOV Y,1
JMP RES
NEXT1:
MOV Y,0
JMP RES
NEXT2:
MOV Y,1
JMP RES
RES:
MOV AH,4CH
INT 2
显示全部