课程设计2,暂停实现
因为,DOS时代毕竟已经过去,我们了解下,就可以了,还是得回到windows上,所以,我决定开始学习win32汇编
在经历了一天的环境搭建,成功测试通过,因此,终于可以正式踏进win32汇编之旅了,希望,是个新的开始,鞭策自己吧!!!
PS:前面关于DOS的评论,纯属个人意见...
- [游客] 我用vm装的虚拟机,装xp可以,但是dos不太会装,麻烦有空时能帮我一下吗?qq519710391 02/08 21:09
- [t181935471] 恩,C语言,的确比较重要 我准备同时看80x86汇编和win32汇编 把80x86汇编完后,再看 08/11 14:29
- [mouse] 我觉得如果想深入一下汇编,可以看看80x86这本书。 下一步建议学C语言,win32有兴趣可以 08/11 10:37
- [mxliang] 个人意见: WIN32编程都是学习的伪指令,和WIN API.对反汇编能力没什么大提高。如果想编程 08/10 17:13
- [younggay] 我把博主的程序修改了一下,用jmp后,table就省掉了。呵呵,然后还得调整判断输入属性来控制跳转的 08/01 11:23
- [younggay] 当然,要是在程序中使用jmp来定位,程序上还得调整一些细节,还有部分逻辑也要变动。 以上是我个人的 08/01 11:17
- [younggay] 不错,原理是搞清楚了。不过我有个建议,程序中call word ptr cs:[bx+202h]这样 08/01 10:50
- [crazyman] 书上为什么写成call dword ptr cs:[200h], ============= 07/29 10:58
- [crazyman] 运行正确,继续加油。 07/24 09:32
- [wsrf] 正确。 07/20 18:50
[2009-08-10 17:07] 开始学习win32汇编
阅读全文 |
评论次数(3) |
浏览次数(1019) |
所属类型(win32汇编)
[2009-08-07 17:54] 实验17
安装一个新的中断例程int 7ch中断例程,实现通过逻辑扇区号对软盘进行读写。
参数说明:
(1)用ah寄存器传递功能号:0表示读,1表示写;
(2)用dx寄存器传递要读写的扇区的逻辑扇区号;
(3)用es:bx指向存储读出数据或写入数据的内存区。
========主程序===============
assume cs:code
code segment
start: mov ax,cs
mov ds,ax
mov si,offset int7
mov ax,0
mov es,ax
mov di,200h
mov cx,o...
参数说明:
(1)用ah寄存器传递功能号:0表示读,1表示写;
(2)用dx寄存器传递要读写的扇区的逻辑扇区号;
(3)用es:bx指向存储读出数据或写入数据的内存区。
========主程序===============
assume cs:code
code segment
start: mov ax,cs
mov ds,ax
mov si,offset int7
mov ax,0
mov es,ax
mov di,200h
mov cx,o...
阅读全文 |
评论次数(1) |
浏览次数(1111) |
所属类型(汇编作业)
[2009-07-31 21:21] 实验16
安装一个新的int 7ch中断例程,为显示输出提供如下功能子程序。
(1)清屏;
(2)设置前景色;
(3)设置背景色;
(4)向上滚动一行。
入口参数说明:
(1)用ah寄存器传递功能号:0表示清屏,1表示设置前景色,2表示设置背景色,3表示向上滚动一行;
(2)对于2、3号功能,用al传送颜色值,(al)∈{0,1,2,3,4,5,6,7}。
assume cs:code
code segment
start:mov ax,cs
mov ds,ax
mov si,offset setscreen ...
(1)清屏;
(2)设置前景色;
(3)设置背景色;
(4)向上滚动一行。
入口参数说明:
(1)用ah寄存器传递功能号:0表示清屏,1表示设置前景色,2表示设置背景色,3表示向上滚动一行;
(2)对于2、3号功能,用al传送颜色值,(al)∈{0,1,2,3,4,5,6,7}。
assume cs:code
code segment
start:mov ax,cs
mov ds,ax
mov si,offset setscreen ...
阅读全文 |
评论次数(3) |
浏览次数(1014) |
所属类型(汇编作业)
[2009-07-28 17:14] 实验15
安装一个新的int 9中断例程,功能:在DOS下,按下“A”键后,除非不再松开,如果松开,就显示满屏幕的“A”其他的键照常处理。
assume cs:code
stack segment
db 128 dup(0)
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,128
push cs
pop ds
mov si,offset int9
mov ax,0
mov es,ax
mov di,204h
mov cx,offset int9end-off...
assume cs:code
stack segment
db 128 dup(0)
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,128
push cs
pop ds
mov si,offset int9
mov ax,0
mov es,ax
mov di,204h
mov cx,offset int9end-off...
阅读全文 |
评论次数(1) |
浏览次数(1083) |
所属类型(汇编作业)
[2009-07-23 16:37] 实验14
编程,以“年/月/日 时:分:秒”的格式,显示当前的日期、时间。
assume cs:code
code segment
start: mov bx,0b800h
mov es,bx
--------------对年份进行处理-----------
mov al,9
out 70h,al
in al,71h
mov ah,al
mov cl,4
shr ah,cl
and al,00001111b
add ah,30h
add al,30h
mov byte ptr es:[160*12...
assume cs:code
code segment
start: mov bx,0b800h
mov es,bx
--------------对年份进行处理-----------
mov al,9
out 70h,al
in al,71h
mov ah,al
mov cl,4
shr ah,cl
and al,00001111b
add ah,30h
add al,30h
mov byte ptr es:[160*12...
阅读全文 |
评论次数(1) |
浏览次数(975) |
所属类型(汇编作业)
[2009-07-20 15:34] 实验13
(1)编写并安装int 7ch 中断例程,功能为显示一个用0结束的字符串,中断例程安装在0:200处。
参数:(dh)=行号,(dl)=,(cl)=,ds:si指向字符串首地址。
以上中断例程安装成功后,对下面的程序进行单步跟踪,尤其注意观察int、iret指令执行前后CS、IP和栈中的状态。
assume cs:code
data segment
db 'Welcome to masm!',0
data ends
code segment
start: mov ax,cs
mov ds,ax
mov si,offset str
mov...
参数:(dh)=行号,(dl)=,(cl)=,ds:si指向字符串首地址。
以上中断例程安装成功后,对下面的程序进行单步跟踪,尤其注意观察int、iret指令执行前后CS、IP和栈中的状态。
assume cs:code
data segment
db 'Welcome to masm!',0
data ends
code segment
start: mov ax,cs
mov ds,ax
mov si,offset str
mov...
阅读全文 |
评论次数(1) |
浏览次数(1023) |
所属类型(汇编作业)
[2009-07-13 16:18] 实验12
assume cs:code
code segment
start: mov ax,cs
mov ds,ax
mov si,offset do0
mov ax,0
mov es,ax
mov di,200h
mov cx,offset do0end-offset do0
cld
rep movsb --->将do0代码送入0:200处
mov ax,0
mov es,ax
mov word ptr es:[0*4],200h
mov word ptr es:[0*4+2],0 -->设置中断
mov...
code segment
start: mov ax,cs
mov ds,ax
mov si,offset do0
mov ax,0
mov es,ax
mov di,200h
mov cx,offset do0end-offset do0
cld
rep movsb --->将do0代码送入0:200处
mov ax,0
mov es,ax
mov word ptr es:[0*4],200h
mov word ptr es:[0*4+2],0 -->设置中断
mov...
阅读全文 |
评论次数(1) |
浏览次数(766) |
所属类型(汇编作业)
[2009-06-25 15:53] 实验11
assume cs:codesg
datasg segment
db "Beginner's All-purpose Symbolic Instruction Code.",0
datasg ends
codesg segment
begin:mov ax,datasg
mov ds,ax
mov si,0
call letterc
mov ax,4c00h
int 21h
letterc: push ax
push si
sublett...
datasg segment
db "Beginner's All-purpose Symbolic Instruction Code.",0
datasg ends
codesg segment
begin:mov ax,datasg
mov ds,ax
mov si,0
call letterc
mov ax,4c00h
int 21h
letterc: push ax
push si
sublett...
阅读全文 |
评论次数(1) |
浏览次数(899) |
所属类型(汇编作业)
[2009-06-19 17:00] 课程设计1
assume cs:code,ds:data,ss:stack
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
db '1993','1994','1995'
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,1...
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
db '1993','1994','1995'
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,1...
阅读全文 |
评论次数(1) |
浏览次数(747) |
所属类型(汇编作业)
[2009-06-19 16:48] 实验10
在这次实验中,我们将要编写3个子程序,通过它们来认识几个常见的问题和掌握解决这些问题的方法.在后面的课程中,将要用到这个实验中编写的3个子程序.
(1)显示字符串
问题:显示字符串是现实工作中经常要用到的功能,应该编写一个通用的子程序来实现这个功能.我们应该提供灵活的调用接口,是调用者可以决定显示的位置(行、列)、内容和颜色.
应用举例:在屏幕的8行3列,用绿色显示data段中的字符串.
子程序描述:
;名称:show_str
;功能:在指定的位置,用指定的颜色,显示一个用0结束的字符串.
;参数:(dh)=行号(取值范围0~24),(dl)=...
(1)显示字符串
问题:显示字符串是现实工作中经常要用到的功能,应该编写一个通用的子程序来实现这个功能.我们应该提供灵活的调用接口,是调用者可以决定显示的位置(行、列)、内容和颜色.
应用举例:在屏幕的8行3列,用绿色显示data段中的字符串.
子程序描述:
;名称:show_str
;功能:在指定的位置,用指定的颜色,显示一个用0结束的字符串.
;参数:(dh)=行号(取值范围0~24),(dl)=...
阅读全文 |
评论次数(1) |
浏览次数(816) |
所属类型(汇编作业)
『 查看更多文章 』