汇编语言例子
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三:
1)题目:在内存中从ARRAY开始的连续三个字节单元存放着30H,40H,50H。编制程序将这三个连续的数据传送到内存TABLE开始的单元。
DATA SEGMENT
ARRAY DB 30H,40H,50H 定义数据段
TABLE DB 3 DUP (?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV ES,AX
LEA SI,ARRAY
LEA DI,TABLE
MOV CX,3
REP MOVSB
JMP $
CODE ENDS
END START
(2)题目:把内存2000H和3000H字单元的内容相加,结果存入4000H单元。(不考虑溢出)
DATA SEGMENT
ORG 2000H
DW 1234H
ORG 3000H
DW 5678H
ORG 4000H
DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AX,[2000H]
ADD AX,[3000H]
MOV [4000H],AX
JMP $
CODE ENDS
END START
实验四
1、数据传送指令和算术运算指令完成NUM1和NUM2相加,结果放入SUM中。
DATA SEGMENT
NUM1 DW 0012H,0030H,0FC21H ; 数1
NUM2 DW 3E81H,44E9H,6D70H ; 数2
SUM D W 3 DUP(?) ; 结果单元
DATA ENDS
CODE SEGMENT
ASSUME CS: CODE, DS: DATA
START: MOV AX, DATA
MOV DS, AX
MOV CX,3
LEA SI,NUM1
LEA DI,NUM2
LEA AX,SUM
HE:
MOV BX,[SI]
ADD BX,[DI]
MOV [AX],BX
INC SI
INC DI
INC AX
LOOP HE
MOV AH, 4CH ; 返回DOS
INT 21H
CODE ENDS
END START
2、内存中自TABLE开始的七个单元连续存放着自然数0至6的立方值(称作立方表)。;任给一数X(0≤X≤6)在XX单元,查表求X的立方值,并把结果存入YY单元中。;提示用XLAT指令
DATA SEGMENT
TABLE DB 0H,1H,2H,3H,4H,5H,6H
XX DB 1
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
LEA BX,TABLE
MOV AL,[XX]
XLAT
MOV DL,AL
MOV AH,02H
INT 21H
JMP $
CODE ENDS
END START
实验五
2、输入一个字符,如果等于'Y',则输出Assemble,否则输出Others。
DATA SEGMENT
STR1 DB 'Assemble'
STR2 DB 'Others'
CODE SEGMENT
START:
MOV AH,01H
INT 21H
CMP AL,'Y'
JZ HE
LEA DX,STR2
MOV AH,9
INT 21H
JMP EXT
HE:
LEA DX,STR1
MOV AH,9
INT 21H
EXT:
JMP $
CODE ENDS
END START
3、编写汇编程序,(Z-(X*Y)-100)/X。已知X、Y、Z均为8位符号数,已经分别装在X、Y、Z单元中,将计算结果商存入100H中,余数存入200H中。
DATA SEGMENT
X DB 10H
Y DB 20H
Z DB 40H
ORG 100H
NUM1 DB ?
ORG 200H
NUM2 DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AL,[Y]
MOV BL,[X]
MOV BH,[Z]
MUL BL
SUB AX,64H
MOV DX,AX
MOV AL,BH
CBW
SUB AX,DX
DIV BL
MOV NUM1,AL
MOV NUM2,AH
JMP $
CODE ENDS
END START
4、编写汇编程序,已知X为8位符号数,装在X单元中,请求出X补码并存入Y单元中。DATA SEGMENT
X DB 88H
Y DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AL,[X]
TEST AL,0
JG HE
NEG AL
OR AL,80H
HE:
MOV [Y],AL
JMP $
CODE ENDS
END START16 7 112 123 11
1、已知X单元存放了无符号整数123,请用程序把123输出。
DATA SEGMENT
X DB 7BH
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA