微机原理打印.docx
《微机原理打印.docx》由会员分享,可在线阅读,更多相关《微机原理打印.docx(7页珍藏版)》请在冰豆网上搜索。
微机原理打印
stacksegmentparastack'stack'
DB256DUP(0)
STACKENDS
CODESEGMENTPARAPUBLIC'CODE'
STARTPROCFAR
ASSUMECS:
CODE,SS:
STACK
PUSHDS
MOVAX,0
PUSHAX
MOVAX,0B800H
MOVES,AX
MOVAX,3
INT10H
MOVDX,3D9H
MOVAL,15
OUTDX,AL
MOVDX,0
MOVAL,20H
MOVAH,44H
MOVDI,0
CALLCOLOR
MOVAH,11H
MOVDI,40
CALLCOLOR
MOVAH,55H
MOVDI,80
CALLCOLOR
MOVAH,22H
MOVDI,120
CALLCOLOR
RET
COLORPROCNEAR
BEGIN:
MOVCX,20
CLD
REPSTOSW
ADDDI,120
INCDX
CMPDX,25
JBBEGIN
MOVDX,0
RET
COLORENDP
STARTENDP
CODEENDS
ENDSTART
stacksegmentparastack'stack'
DB256DUP(01H)DW128DUP(0001H)
0101…….0100874120.asm
STACKENDS
CODESEGMENTPARAPUBLIC'CODE'
STARTPROCFAR
ASSUMECS:
CODE,SS:
STACK
PUSHDS
MOVAX,0
PUSHAX;DS…
MOVAX,0B800H;设置显示缓冲区首地址
MOVES,AX
MOVAX,3;设置彩色字符方式:
3
INT10H;80W*25H
MOVAL,15;底色白色
MOVDX,3D9H
OUTDX,AL
MOVDX,0
MOVAL,20H
MOVAH,44H;COL
MOVDI,0
CALLCOLOR
MOVAH,11H
MOVDI,20
CALLCOLOR
MOVAH,55H
MOVDI,40
CALLCOLOR
MOVAH,22H
MOVDI,60
CALLCOLOR
MOVAH,44H;COL
MOVDI,80
CALLCOLOR
MOVAH,11H
MOVDI,100
CALLCOLOR
MOVAH,55H
MOVDI,120
CALLCOLOR
MOVAH,22H
MOVDI,140
CALLCOLOR
RET
COLORPROCNEAR
BEGIN:
MOVCX,10;每个彩条宽度WIDTH=80/N
CLD;列递增0。
。
。
。
159。
160
REPSTOSW
ADDDI,140;列跃变量X=160-WIDTH
INCDX;行数加1
CMPDX,25;0-24<25
JBBEGIN
MOVDX,0
RET
COLORENDP
STARTENDP
CODEENDS
ENDSTART
039407980119120159
019203940
内存地址:
B800h~BFFFH(32K)
09H
c
融(理解)溶(加材料)熔(特点、激情)
12345=?
?
?
?
h99999
0*10+1(31h-30h)
1*10+2(32h-30h)
12*10+3(33-30)
3132333435x0-x4
S=0,assddfg,
xi<30h,>39h报错
M=xi-30H(30-39H);
S=S*10+MS>65535
S=S-65536
S=0C/10Y=2G=1
DIV?
字节B,AX作为被除数
DIVBL;将商存放AL,余数存放AH
字W,AX,dx作为被除数DXAX
DIVBX;将商存放AX,余数存放DX
AX=1DX=2
DX---2+30=32H
PUSHDX
CX+1
DX----0
00000001H/10
1+302+30
CX-1
压缩BCD
非压缩BCD
0-9
0-9
X
0-9
97
97
97H
09H
07H
+-
+-*/
10010111
Aaaaaaaab
99999999b
11111111b
01000110b
I
123456789
987654321=9*10+8)*10+7
ASCII
0-930H-39H-30H00H-09H
AL:
10010011
BL:
10010111——XXXX1001
2+2*2*2=10
CL10010111
00001111
00000111
54321=((((5*10+4)*10+3)*10)+2)*10+1
10010111B=((((1*2+0)*2+0)*2+1)*2+0)*2+1)*2+1)*2+1=
100010111
61H
主程序
1.输入提示:
判定按Q,q退出,否则输入数
正确输入提示及结束SIGN
错误输入提示及重新输入
SIGN0
2.将输入值按十进制的方式转换
BCD两位数=十位数*10+个位数
十位:
向右移4位取10位数,做1—2+2*2*2成十位数*10结果
个位:
值与0F逻辑与,得个位
十位数、个位数分别与0-9的比较,判定是否为压缩BCD码
再做:
十位数*10+个位数,得到十进制真实值
61h=97
F2T2
判定输入是否30H-39H之间,若是,则-30H得到实际数值
输入ASCII码转换二进制转换,为运算准备
F2T10
做二进制到十进制转换准备,同时将radix结果(ASCII码)显示出来
radix
做二进制到十进制运算,除10取余方式,得到结果
并将结果加30H后转换为ASCII码,做F2T10的计算机显示准备
10010111B=97H9761H=97