微机原理EMU8086使用及指令系统熟悉Word文件下载.docx
《微机原理EMU8086使用及指令系统熟悉Word文件下载.docx》由会员分享,可在线阅读,更多相关《微机原理EMU8086使用及指令系统熟悉Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。
①COM——无需分段,所有内容均放在代码段中,程序代码默认从ORG0100H开始
②EXE——需要分段,内容按代码段、数据段、堆栈段划分,编译器自动完成空间的分配
③BIN——二进制文件,适用于所有用户定义的结构类型
④BOOT——适用于在软盘中创建的文件
⑤emptyworkspace可以创建空的文档
此为一个EXE的模板
3.2测试几类简单的指令
3.2.1数据传送指令
①测试一
name"
testmov"
org100h
MOVAX,1234H
MOVBH,12H
MOVBL,34H
MOVCX,12
MOVDX,CX
MOVSP,AX
②测试二
testmov2"
MOVAX,2000H
MOVDS,AX
MOV[1000H],'
A'
MOV[1001H],'
B'
MOVSI,1000H
MOVAX,[SI]
HLT
3.2.2算数运算指令
计算a*b+c-18
其中a=34H,b=56H,c=0E7H
datasegment
DAT1DB34H
DAT2DB56H
DAT3DB0E7H
DATYDW?
ends
stacksegment
dw128dup(0)
codesegment
start:
ASSUMEDS:
DATA,SS:
STACK,CS:
CODE
MOVAX,STACK
MOVSS,AX
MOVAX,DATA
MOVDS,AX
MOVAL,DAT1
MOVBL,DAT2
IMULBL
MOVBX,AX
MOVAL,DAT3
CBW
ADDAX,BX
SUBAX,18
MOVDATY,AX
ends
endstart
3.2.3逻辑运算指令
通过单步调试可以追踪到每一条指令执行所产生的效果,此处指放出最后结果的截图
name'
testlogicoperation'
MOVAX,45FCH
MOVBX,0034H
ANDAL,0FH
ORBX,000FH
XORAH,0FH
NOTBH
3.2.4标志处理和CPU控制类指令
testcontrolandflags'
CLC;
0-->
CF
CMC;
^CF-->
STD;
1-->
DF
CLI;
IF
NOP
NOP;
blank
HLT;
pause
3.2.5循环和移位类指令
testcirclereplacement"
MOVBL,01110010B
STC;
MOVCL,3
RCRBL,CL
算数移位三次后结果应该为
BL=10101110B=AEH
3.3编写一个简单的程序实现字符串的储存、搬移和显示
①不分段,仅使用代码代码段,使用逐个字符存入
FIRSTPROGRAM"
;
setsegmentregister:
MOVAX,1000H
MOVBX,0000H
print"
ThisismyfirstASMprogram-YongRongFeng"
MOV[02h],'
T'
MOV[04h],'
h'
MOV[06h],'
i'
MOV[08h],'
s'
MOV[0ah],'
'
MOV[0ch],'
m'
MOV[0eh],'
y'
MOV[10h],'
MOV[12h],'
f'
MOV[14h],'
MOV[16h],'
r'
MOV[18h],'
MOV[1ah],'
t'
MOV[1ch],'
MOV[1eh],'
MOV[20h],'
S'
MOV[22h],'
M'
MOV[24h],'
MOV[26h],'
p'
MOV[28h],'
MOV[2ah],'
o'
MOV[2ch],'
g'
MOV[2eh],'
MOV[30h],'
a'
MOV[32h],'
MOV[34h],'
-'
MOV[36h],'
Y'
MOV[38h],'
MOV[3ah],'
n'
MOV[3ch],'
MOV[3eh],'
R'
MOV[40h],'
MOV[42h],'
MOV[44h],'
MOV[46h],'
F'
MOV[48h],'
e'
MOV[4ah],'
MOV[4ch],'
MOVCX,38;
timesofmovingcharacters
MOVBX,0002H
movestring
move:
MOVAX,[BX]
MOV[BX+0100H],AX
ADDBX,2
LOOPmove
printscreen
MOVBX,0102H
MOVCX,38
print:
MOVDL,[BX]
MOVAH,02H
INT21H
ADDBX,2
LOOPprint
returnDOS
MOVAH,4CH
INT21H
ret
②分段并使用字符串输入,字符串显示
FIRSTPROGRAMUSEHEX"
HEXDB'
ThisismyfirstASMprogram-YangRongFeng'
'
$'
;
Youneedtocorrespondthesegment
ASSUMECS:
CODE,DS:
STACK
MOVSP,100
printhexonthescreen
MOVDX,OFFSETHEX
MOVAH,9
INT21H
MOVAH,4CH
INT21H;
returnDOS