西安邮电大学汇编语言自学课程上机代码.doc
文本预览下载声明
西安邮电大学
汇编语言自学课程
实验报告
(四次上机,代码完整版!!!)
1. 编写人机交互程序,在屏幕上显示提问“What is your name?”,并可输入回答信息“My name is……”
STACK SEGMENT
DB 64 DUP(?)
STACK ENDS
DATA SEGMENT
BUFF DB 50,?,50 DUP(?)
MES1 DB 0DH,0AH
DB what is your name?:$
MES2 DB 0DH,0AH
DB My name is:,$
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,SS:STACK,SS:STACK,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET MES1
MOV AH,9
INT 21H
MOV DX,OFFSET BUFF
MOV AH,0AH
INT 21H
MOV DX,OFFSET MES2
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
1.编写一程序,要求比较两个字符串STRING1和STRING2所含的字符串是否相等,若相同则显示”MATCH”,若不同则显示”NOMATCH”.
DATA SEGMENT
STRING1 DB AAA
STRING2 DB AAA
YES DB MATCH,0DH,0AH,$
NO DB NOMATCH,0DH,0AH,$
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
PUSH DS
SUB AX,AX
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV ES,AXkk
LEA SI,STRING1
LEA DI,STRING2
MOV CX,STRING2-STRING1
CLD
REPE CMPSB
JNZ DISPNO
MOV AH,9
LEA DX,YES
INT 21H
JMP EXIT
DISPNO:
MOV AH,9
LEA DX,NO
INT 21H
EXIT:
MOV AH,4CH
INT 21H
CODE ENDS
END START
2.设有字无符号数X,Y,试编程求Z=|X-Y|
DATA SEGMENT
ORG 10H
X DW 100
ORG 20H
Y DW 399
ORG 30H
Z DW ?
DIVISORS DW 10000,1000,100,10,1
RESULTS DB 0,0,0,0,0,$;5 ASCII
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV AX,X
SUB AX,Y ;无符号数产生错位CF=1
JAE NEXT ;无符号数条件跳转(CF=0跳转)
NEG AX ;取补指令
NEXT: MOV Z,AX;
MOV AX,Z
MOV SI,OFFSET DIVISORS
MOV DI,OFFSET RESULTS
MOV CX,5
AA: MOV DX,0
DIV WORD PTR [SI];
ADD AL,48
MOV BYTE PTR[DI],AL
INC DI
ADD SI,2
MOV AX,DX
LOOP AA
MOV CX,4
MOV DI,OFFSET RESULTS
BB: CMP BYTE PTR[DI],0;
JNE PRINT
INC DI
LOOP BB
PRINT: MOV DX,DI
MOV AH,9
INT 21H
MOV AX,4C00H
INT 21H
MOV AX,4C00H
1.编写求两个4位非压缩BCD数之和,将和送显示器显示的程序。
DATA SEGMENT
X1 DB 4 DUP(?)
X2 DB 4 DUP(?)
显示全部