ASSUME CS:CODES
CODES SEGMENT
START:
MOV AH,3;功能号
MOV AL,01000010B;前景色,背景色的颜色设置
MOV BX,0B800H
MOV ES,BX
MOV DI,0
MOV SI,0
MOV CX,2000
PRINT:
MOV BYTE PTR ES:[DI],CL
MOV ES:[DI+1],00100100B
ADD DI,2
INC SI
LOOP PRINT
...


- [tomato] MOV BX,0B800H MOV ES,BX MOV 04/17 15:26
- [游客] 程序有问题,你的返回指令处 MOV AH,4C 这条指令丢了H了,所以数据就不对了。 04/15 11:28
- [游客] 结论正确。第一题的原因是? 04/15 11:20
- [游客] 回答OK。 04/15 10:24
- [游客] 没问题。想显示完全年份的话,可以搜搜博客中的文章,有提到的。 04/15 10:10
- [游客] 理解OK。 04/15 09:00
- [bslg123] 支持一下! 04/13 10:01
- [caroline0712] 3ks 已经改正 04/08 15:18
- [crazyman] 监测点16.2第二个空不对。仔细看看assume关联。 04/07 21:25
- [caroline0712] ;数值显示 改进版()显示部分的改进) ;将DATA中的数据以十进制显示; ;将二进制信息存储 03/30 15:47
[2009-04-15 12:08] 实验16
阅读全文 |
评论次数(1) |
浏览次数(676) |
所属类型(汇编作业)
[2009-04-12 21:10] 实验14
;以年/月/日 时:分:秒的格式 显示当前的日期和时间
DATAS SEGMENT
DB 9,8,7,4,2,0
DB 2FH,20H,3AH
DATAS ENDS
STACKS SEGMENT
DB 2 DUP (0)
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV AX,0B800H
MOV ES,AX
MOV DI,0
MOV SI,0
M...
DATAS SEGMENT
DB 9,8,7,4,2,0
DB 2FH,20H,3AH
DATAS ENDS
STACKS SEGMENT
DB 2 DUP (0)
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV AX,0B800H
MOV ES,AX
MOV DI,0
MOV SI,0
M...
阅读全文 |
评论次数(2) |
浏览次数(672) |
所属类型(汇编作业)
[2009-04-11 13:19] 实验12
;问题:计算DO0的长度 ?avenue:利用编辑器计算DO0的长度 offset do0end-offset do0
;步骤: 1.安装DO0
; 3.设置中断向量表
; 4.写DO0中断处理程序
CODES SEGMENT
ASSUME CS:CODES
START:
;do0安装程序:把DO0安装到0:200处
CALL DO0INSTALL
CALL INTERPUTTABLE
MOV AX,1000H
MOV BL,1
DIV BL
MOV AX,4C00H ...
;步骤: 1.安装DO0
; 3.设置中断向量表
; 4.写DO0中断处理程序
CODES SEGMENT
ASSUME CS:CODES
START:
;do0安装程序:把DO0安装到0:200处
CALL DO0INSTALL
CALL INTERPUTTABLE
MOV AX,1000H
MOV BL,1
DIV BL
MOV AX,4C00H ...
阅读全文 |
评论次数(0) |
浏览次数(775) |
所属类型(汇编作业)
[2009-03-28 08:55] 第十章实验十程序三
;数值显示 改进版
;将DATA中的数据以十进制显示;
;将二进制信息存储的数据变为十进制形式的字符串
;
DATAS SEGMENT
DB 6 DUP (0);用AX存储数据,最大为5位 ,所以分配6个db
DATAS ENDS
STACKS SEGMENT
DW 14 DUP(0)
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,12666
MOV BX,DATAS
MOV DS,BX
...
;将DATA中的数据以十进制显示;
;将二进制信息存储的数据变为十进制形式的字符串
;
DATAS SEGMENT
DB 6 DUP (0);用AX存储数据,最大为5位 ,所以分配6个db
DATAS ENDS
STACKS SEGMENT
DW 14 DUP(0)
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,12666
MOV BX,DATAS
MOV DS,BX
...
阅读全文 |
评论次数(3) |
浏览次数(769) |
所属类型(汇编作业)
[2009-03-27 19:50] 第十章实验十程序二
;解决除法溢出的问题 子程序divdw
;进行不会溢出的除法运算,被除数为DWORD型 除数为WORD型,结果为DWORD型
;参数:(AX)= 低16位;(DX)= 高16位;(CX)= 除数
;返回:(DX)= 结果的高16位;(AX)= 结果的低16位;(cx)=余数
;公式: X/N = int(H/N)*65536+[rem(H/N)*65536+L]/N
CODES SEGMENT
ASSUME CS:CODES
START:
MOV AX,1000H
MOV DX,1111H
MOV CX,0...
;进行不会溢出的除法运算,被除数为DWORD型 除数为WORD型,结果为DWORD型
;参数:(AX)= 低16位;(DX)= 高16位;(CX)= 除数
;返回:(DX)= 结果的高16位;(AX)= 结果的低16位;(cx)=余数
;公式: X/N = int(H/N)*65536+[rem(H/N)*65536+L]/N
CODES SEGMENT
ASSUME CS:CODES
START:
MOV AX,1000H
MOV DX,1111H
MOV CX,0...
阅读全文 |
评论次数(1) |
浏览次数(211) |
所属类型(汇编作业)
[2009-03-26 16:36] 第九章实验九
;在屏幕中分别显示绿色,绿底红色,白底蓝色的字符串‘WELCOME TO MASM!’
;在屏幕上显示 要显示的内容存到ES中
DATAS SEGMENT
;此处输入数据段代码
DB 'WELCOME TO MASM!'
X DB 01110010B
Y DB 00100100B
Z DB 01110001B
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
DB 0,0,0
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:S...
;在屏幕上显示 要显示的内容存到ES中
DATAS SEGMENT
;此处输入数据段代码
DB 'WELCOME TO MASM!'
X DB 01110010B
Y DB 00100100B
Z DB 01110001B
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
DB 0,0,0
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:S...
阅读全文 |
评论次数(2) |
浏览次数(236) |
所属类型(汇编作业)
[2009-03-26 16:33] 第九章实验八
程序不能正确返回;当程序运行到JMP SHORT S时,跳转到S1,只执行了INT 21H 而没有MOV AH 4CH
看完留言之后,修改版:
果然调试之后发现可以正常退出:
主要原因是:
MOV CS:[DI],AX指令
把:
s: nop
nop
改变成了:
S2: JMP SHORT S1
而JMP SHORT S1 的位移为-10,所以跳转到了IP=0000H...
看完留言之后,修改版:
果然调试之后发现可以正常退出:
主要原因是:
MOV CS:[DI],AX指令
把:
s: nop
nop
改变成了:
S2: JMP SHORT S1
而JMP SHORT S1 的位移为-10,所以跳转到了IP=0000H...
阅读全文 |
评论次数(2) |
浏览次数(266) |
所属类型(汇编作业)
[2009-03-26 11:04] 第八章实验七
;将DATA中的数据写入到TABLE段中,并计算21年中的人的平均收入(取整)
ASSUME CS:CODES,DS:DATAS,SS:STACKS
DATAS SEGMENT
;21years
db '1975','1976','1977','1978'
db '1979','1980','1981','1982'
db '1983','1984','1985','1986'
db '1987','1988','1989','1990'
db '1991','1992','1993','1994'
db '19...
ASSUME CS:CODES,DS:DATAS,SS:STACKS
DATAS SEGMENT
;21years
db '1975','1976','1977','1978'
db '1979','1980','1981','1982'
db '1983','1984','1985','1986'
db '1987','1988','1989','1990'
db '1991','1992','1993','1994'
db '19...
阅读全文 |
评论次数(2) |
浏览次数(251) |
所属类型(汇编作业)
[2009-03-25 09:15] 第七章实验六
(2)完成7.9中的程序
;把每个单词的前4个字母改写成大写
;caroline: usage of stack to store the tmp variable
STACKS SEGMENT
;此处输入堆栈段代码
DW 8 DUP(0)
STACKS ENDS
DATAS SEGMENT
;此处输入数据段代码
DB '1. DiSpLay '
DB '2. browse '
DB '3. replacement '
DB '4. modify '
DATAS EN...
;把每个单词的前4个字母改写成大写
;caroline: usage of stack to store the tmp variable
STACKS SEGMENT
;此处输入堆栈段代码
DW 8 DUP(0)
STACKS ENDS
DATAS SEGMENT
;此处输入数据段代码
DB '1. DiSpLay '
DB '2. browse '
DB '3. replacement '
DB '4. modify '
DATAS EN...
阅读全文 |
评论次数(1) |
浏览次数(202) |
所属类型(汇编作业)
[2009-03-23 18:32] 第六章实验五
(1)
[1]DATA段中的数据为23 01 56 04 89 07 ef 0d ed 0f ba 0c 87 09
[2]CS=1443 ;SS=1441;DS=1431
[3]data的段地址为:X-2;stack段的段地址为:X-1
(2)
[1]data段中的数据为:23 01 56 04
[2]CS=1443,SS=1441;DS=1431
[3]DATA段的段地址为X-2,STACK的段地址为X-1
[4](N/8向上取整)*16个字节
(3)
[1]23 01 56 04
[2]CS=1441,SS=1441,DS=1431
[3]DATA段的段地...
[1]DATA段中的数据为23 01 56 04 89 07 ef 0d ed 0f ba 0c 87 09
[2]CS=1443 ;SS=1441;DS=1431
[3]data的段地址为:X-2;stack段的段地址为:X-1
(2)
[1]data段中的数据为:23 01 56 04
[2]CS=1443,SS=1441;DS=1431
[3]DATA段的段地址为X-2,STACK的段地址为X-1
[4](N/8向上取整)*16个字节
(3)
[1]23 01 56 04
[2]CS=1441,SS=1441,DS=1431
[3]DATA段的段地...
阅读全文 |
评论次数(2) |
浏览次数(267) |
所属类型(汇编作业)