北京理工大学微机原理总汇编语言上机实验题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一
请在数据段中定义两个数,要求编写程序分别计算出这两个数的和、差、积、商,并用Debug 的相关命令查询计算结果。
(略)
实验二
内存自TABLE开始的连续16个单元中存放着0-15的平方值,查表求DATA中任意数X(0≤X ≤15)的平方值,并将结果放在RESULT中。
DATA1 SEGMENT
TABLE DB 0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225
DATA DB 10
RESULT DB ?
DATA1 ENDS
STAC SEGMENT
DB 100 DUP (?)
STAC ENDS
CODE SEGMENT
ASSUME DS:DATA1,SS:STAC,CS:CODE
SR:MOV AX,DATA1
MOV DS,AX
MOV AX,STAC
MOV SS,AX
LEA BX,TABLE
MOV AH,0
MOV AL,DATA
XLAT
MOV RESULT,AL
MOV AH,4CH
INT 21H
CODE ENDS
END SR
实验三
试编写一程序:比较两个字符串STRING1 和STRING2所含的字符是否相同。若相同则显示‘MATCH’,否则显示‘NO MATCH’。
DATA1 SEGMENT
STRING1 DB 10,?,10 DUP (?)
STRING2 DB 10,?,10 DUP (?)
REM1 DB 'PLEASE INPUT STR1: $'
REM2 DB 'PLEASE INPUT STR2: $'
MESS1 DB 'MATCH$'
MESS2 DB 'NO MATCH$'
DATA1 ENDS
CODE1 SEGMENT
ASSUME CS:CODE1,DS:DATA1
STT: MOV AX,DATA1
MOV DS,AX
MOV ES,AX LEA DX,REM1 MOV AH,09H INT 21H
LEA DX, STRING1 MOV AH, 0AH INT 21H
MOV DL, 0DH MOV AH, 6
INT 21H
MOV DL, 0AH MOV AH, 6
INT 21H
LEA DX,REM2 MOV AH,09H INT 21H
LEA DX, STRING2 MOV AH, 0AH INT 21H
MOV DL,0DH MOV AH,6
INT 21H
MOV DL,0AH
MOV AH,6
INT 21H
LEA SI, STRING1
LEA DI,STRING2
MOV CL,[SI+1]
MOV BL,[DI+1]
CMP CL,BL
JNE NOM
CLD
MOV CH,0
ADD CL,2
REPZ CMPSB
JNZ NOM MAT: LEA DX,MESS1
JMP SHORT DISP1 NOM: LEA DX,MESS2
DISP1: MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
CODE1 ENDS
END STT
实验四
设有10个学生的成绩分别为:56,69,84,82,73,88,99,63,100,80分。试编写程序分别统计低于60分、60-69分、70-79分、80-89分、90-99分及100分的人数,并将各分数段的人数在屏幕上显示出来。
DATA SEGMENT
SCORE DB 56,69,84,82,73,88,99,63,100,80
NUM_UNDER60 DB 0
NUM_60TO69 DB 0
NUM_70TO79 DB 0
NUM_80TO89 DB 0
NUM_90TO99 DB 0
NUM_100 DB 0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
XOR AX,AX
MOV CX,10
LEA BX,SCORE
COMPARE:
CMP BYTE PTR [BX],60 JL UNDER60
JMP IS60TO69
IS60TO69:
CMP BYTE PTR [BX],70 JL _60TO69
JMP IS70TO79
IS70TO79:
CMP BYTE PTR [BX],80 JL _70TO79
JMP IS80TO89
IS80TO89:
CMP BYTE PTR [BX],90 JL _80TO89
JMP IS90TO99
IS90TO99:
CMP BYTE PTR [BX],100 JL _90TO99
JZ EQUAL100
UNDER60:
ADD NUM_UNDER60,1 JMP CON
_60TO69:
ADD NUM_60TO69,1 JMP CON
_70TO79:
ADD NUM_70TO79,1 JMP CON
_80TO89:
ADD NUM_80TO89,1 JMP CON
_90TO99:
ADD NUM_90TO99,1 JMP CON
EQUAL100:
ADD NUM_100,1 CON: