
- [游客] 22h是什么字符? 05/22 21:23
- [younggay] 嗯。博主说的本人也深有体会,可能是由于不同的阶段,我们考虑问题的侧重点不一样,如果我们知道后面这个课 03/07 09:25
- [marchsnow] 多谢, sub al,1 那句应该去掉。 03/02 22:00
- [wsrf] show_str子程序,如果定位到第0行就会显示错误,一个小BUG。 03/02 19:32
- [younggay] 不错哦,这个程序应该比较简单。继续加油! 02/26 10:13
- [younggay] 嗯,说明的挺详细。 接下来,就用后面的课程设计一来验证自己的这个阶段性成果吧。 加油! 02/26 10:11
- [marchsnow] 年份作为字符以ANSII码存放在内存里就是这样子的。 02/25 22:04
- [游客] 博主程序最终运行后的结果的在内存中的格式好像跟题目要求的不一致啊。 年份等都是以列的方式一列一列的 02/23 10:57
[2009-03-07 12:39] 清屏子程序
今天在课程设计1的代码中加了一段清屏功能的子程序。
clear:
push ax
push es
push bx
push cx
mov ax,0b800h
mov es,ax
mov bx,0
mov cx,2000
clears:
mov al,22h
mov es:[bx],al
mov al,0
mov es:[bx+1],al
add bx,2
loop clears
pop cx
pop bx
pop es
pop ax...
clear:
push ax
push es
push bx
push cx
mov ax,0b800h
mov es,ax
mov bx,0
mov cx,2000
clears:
mov al,22h
mov es:[bx],al
mov al,0
mov es:[bx+1],al
add bx,2
loop clears
pop cx
pop bx
pop es
pop ax...
阅读全文 |
评论次数(1) |
浏览次数(236) |
所属类型(默认类型)
[2009-03-06 21:38] 课程设计1
这是到目前为止我写的最长的一个汇编程序,调了好久。应该来说,从一开始思路还是清晰的,几个子程序是之前学习过程中写好的并验证“没问题”的,在写好了整个大的程序的结构之后,把之前写好的子程序直接copy过来,因为对自己写的这几个子程序对外的松耦合性很“自信”,结果几个关键的错误恰恰就是因为子程序修改了外层程序的寄存器造成的,解耦做的还是不到位!
通过这个课程设计,使之前编写的几个子程序的问题都暴露出来了,是个很好的总结。之前的帖子里的子程序我便也不去修改它了吧。留着当个错误的参考记录也好...
课程设计1源程序:
assume cs:codesg
data segme...
通过这个课程设计,使之前编写的几个子程序的问题都暴露出来了,是个很好的总结。之前的帖子里的子程序我便也不去修改它了吧。留着当个错误的参考记录也好...
课程设计1源程序:
assume cs:codesg
data segme...
阅读全文 |
评论次数(1) |
浏览次数(281) |
所属类型(默认类型)
[2009-03-01 20:13] 实验十(3)数值显示
子程序名称:dtoc
功能:将word型数据转变为表示十进制数的字符串,字符串以0结尾符
参数:(ax)=word型数据
ds:si指向字符串的首地址
返回:无
例子:将12666以十进制绿色字显示在屏幕的8行3列
例子源代码:
assume cs:code
data segment
db 10 dup (0)
data ends
code segment
start:
mov ax,12666
mov bx,data
mov ds,bx
mov si,0
call dtoc
mov d...
功能:将word型数据转变为表示十进制数的字符串,字符串以0结尾符
参数:(ax)=word型数据
ds:si指向字符串的首地址
返回:无
例子:将12666以十进制绿色字显示在屏幕的8行3列
例子源代码:
assume cs:code
data segment
db 10 dup (0)
data ends
code segment
start:
mov ax,12666
mov bx,data
mov ds,bx
mov si,0
call dtoc
mov d...
阅读全文 |
评论次数(2) |
浏览次数(276) |
所属类型(默认类型)
[2009-02-25 21:58] 实验十(2)解决除法溢出
子程序名称:divdw
功能:进行不会溢出的除法,被除数为dword型,除数为word型,结果为dword型
参数:(ax)=被除数的低16位 (dx)=被除数的高16位 (cx)=除数
返回:(ax)=商的低16位 (dx)=商的高16位 (cx)=余数
例子:计算1000000/10(F4240H/0AH)
例子源代码:
;计算1000000/10(f4240h/ah)
assume cs:code
code segment
start:
mov dx,0fh
mov ax,4240h
mov cx,0ah
call ...
功能:进行不会溢出的除法,被除数为dword型,除数为word型,结果为dword型
参数:(ax)=被除数的低16位 (dx)=被除数的高16位 (cx)=除数
返回:(ax)=商的低16位 (dx)=商的高16位 (cx)=余数
例子:计算1000000/10(F4240H/0AH)
例子源代码:
;计算1000000/10(f4240h/ah)
assume cs:code
code segment
start:
mov dx,0fh
mov ax,4240h
mov cx,0ah
call ...
阅读全文 |
评论次数(1) |
浏览次数(267) |
所属类型(默认类型)
[2009-02-25 21:48] 实验十(1)显示字符串
名称:show_str
功能:在制定的位置,以制定的颜色,显示字符串
参数:(dh)=行号 (dl)=列号 (cl)=颜色,ds:si指向字符串的首地址
返回:无
例子:在屏幕的8行3列,用绿色显示data段中的字符串
例子的源代码:
assume cs:code
data segment
db 'welcome to masm!',0
data ends
code segment
start:
mov dh,8
mov dl,3
mov cl,2
mov ax,data
mov ds,ax
mov si,...
功能:在制定的位置,以制定的颜色,显示字符串
参数:(dh)=行号 (dl)=列号 (cl)=颜色,ds:si指向字符串的首地址
返回:无
例子:在屏幕的8行3列,用绿色显示data段中的字符串
例子的源代码:
assume cs:code
data segment
db 'welcome to masm!',0
data ends
code segment
start:
mov dh,8
mov dl,3
mov cl,2
mov ax,data
mov ds,ax
mov si,...
阅读全文 |
评论次数(1) |
浏览次数(288) |
所属类型(默认类型)
[2009-02-23 23:36] 实验9 彩色字显示
哎......果然人钝了挺多......挺简单个实验竟调了N久......困死了.....
源代码(以绿底红字为例):
assume cs:codesg,ds:datasg
datasg segment
db 'welcome to masm!'
datasg ends
codesg segment
start:
mov ax,datasg
mov ds,ax
mov bx,0
mov si,0
mov cx,10h
mov ax,0b87ch
mov es,ax
s:
mov dl,ds:[bx...
源代码(以绿底红字为例):
assume cs:codesg,ds:datasg
datasg segment
db 'welcome to masm!'
datasg ends
codesg segment
start:
mov ax,datasg
mov ds,ax
mov bx,0
mov si,0
mov cx,10h
mov ax,0b87ch
mov es,ax
s:
mov dl,ds:[bx...
阅读全文 |
评论次数(0) |
浏览次数(240) |
所属类型(默认类型)
[2009-02-19 19:49] 《汇编语言》实验七源程序
assume cs:codesg
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983','1984'
db '1985','1986','1987','1988','1989','1990'
db '1991','1992','1993','1994','1995'
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,590827,803530,1183000,1843000,...
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983','1984'
db '1985','1986','1987','1988','1989','1990'
db '1991','1992','1993','1994','1995'
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,590827,803530,1183000,1843000,...
阅读全文 |
评论次数(2) |
浏览次数(306) |
所属类型(默认类型)


