学谭老师的书时总想着还没做课程设计2,内心感觉非常的愧疚,为了可以安心看书,决定先把课程设计2给搞定,呵呵。
我是一个部分一个部分做的,调试了很久,功能1和2就先不做了,只完成了功能3和4.有很多注释,希望可以像mouse他们那样给看的人一点启发,这个程序有很多地方都是他们启发我的,谢谢。
*******************************************************
assume cs:code,ss:stack,ds:data
data segment
dw sub_1,sub_2,sub_3,sub_4 //4个选项对应的子程序偏移地址
...


- [wu136626] 回复mywill:看了 也做了一下 准备学c语言的时候再用王的方法学。 09/07 13:34
- [mywiil] 博主准备学谭的C语言了?不知道本书的综合研究看了没? 09/07 09:11
- [wu136626] 回复blackberry:调试了 没有出错啊! 08/31 16:53
- [wu136626] 回复blackbeny:是int 7h,我写错了 不过程序还是修改了ax的值,刚才参考tsembr 08/31 16:45
- [wu136626] 不怎么明白,书上不是只要求我们显示除法溢出吗? 08/31 16:25
- [wu136626] 谢谢blackberry! 08/31 16:19
- [blackberry] 生日快乐!(好像迟了一点,呵呵) 08/31 10:17
- [blackberry] 怎么用书中的那个循环显示!号的程序来测试你的程序,总是出错关闭呢? 08/31 09:18
- [blackberry] int 7?呵呵。我说呢。我试了半天int 7ch总不对。 不过用书上的程序试了一下,发现你的字符 08/31 09:04
- [blackberry] 程序实现没问题,不过,由于中断程序是iret而没有直接返回,所以,出现错误的时候,就没有响应了。 08/31 08:28
- [wu136626] 当幸福来敲门,要努力争取! 08/24 17:35
[2009-09-04 18:07] 课程设计2
阅读全文 |
评论次数(2) |
浏览次数(685) |
所属类型(汇编作业)
[2009-08-31 19:46] 实验14
assume cs:code
code segment
start:
mov ax,0b800h
mov es,ax
mov di,12*160+30*2
mov di,0
mov al,9
call do_al
mov byte ptr es:[di],'/'
mov byte ptr es:[di].1,7
add di,2
mov al,8
call do_al
mov byte ptr es:[di],'/'
mov byte ptr es:[di].1,7
add di,2
mov al,7
call do_al
mov ...
code segment
start:
mov ax,0b800h
mov es,ax
mov di,12*160+30*2
mov di,0
mov al,9
call do_al
mov byte ptr es:[di],'/'
mov byte ptr es:[di].1,7
add di,2
mov al,8
call do_al
mov byte ptr es:[di],'/'
mov byte ptr es:[di].1,7
add di,2
mov al,7
call do_al
mov ...
阅读全文 |
评论次数(0) |
浏览次数(670) |
所属类型(汇编作业)
[2009-08-29 22:07] int 7代替loop指令
bx为偏移地址
cx为循环数
assume cs:code,ss:stack
stack segment
db 32 dup (0)
stack ends
code segment
start:
mov ax,0h
mov es,ax
mov di,200h
mov ax,cs
mov ds,ax
mov si,offset loop_s
mov cx,offset loop_e-offset loop_s
cld
rep movsb
mov word ptr es:[28],200h
mov word ptr es:[30],0
...
cx为循环数
assume cs:code,ss:stack
stack segment
db 32 dup (0)
stack ends
code segment
start:
mov ax,0h
mov es,ax
mov di,200h
mov ax,cs
mov ds,ax
mov si,offset loop_s
mov cx,offset loop_e-offset loop_s
cld
rep movsb
mov word ptr es:[28],200h
mov word ptr es:[30],0
...
阅读全文 |
评论次数(2) |
浏览次数(624) |
所属类型(汇编作业)
[2009-08-29 21:20] 第十三章int 7实验
int 7中断输出字母安装程序:
assume cs:code,ss:stack
stack segment
db 32 dup (0)
stack ends
code segment
start:
mov ax,0h
mov es,ax
mov di,200h
mov ax,cs
mov ds,ax
mov si,offset s1
mov ax,offset se
mov cx,offset se-offset s1 //这里是末尾减头 别反了会溢出
cld
rep movsb
mov word ptr es:[28],200h
mov ...
assume cs:code,ss:stack
stack segment
db 32 dup (0)
stack ends
code segment
start:
mov ax,0h
mov es,ax
mov di,200h
mov ax,cs
mov ds,ax
mov si,offset s1
mov ax,offset se
mov cx,offset se-offset s1 //这里是末尾减头 别反了会溢出
cld
rep movsb
mov word ptr es:[28],200h
mov ...
阅读全文 |
评论次数(2) |
浏览次数(626) |
所属类型(汇编作业)
[2009-08-28 19:44] 子程序do0
assume cs:codesg,ss:stacksg
stacksg segment
dw 16 dup (0)
stacksg ends
codesg segment
start:
mov ax,0
mov es,ax
mov di,200
mov ax,cs
mov ds,ax
mov si,offset do0
mov cx,offset do0_end-offset do0
cld
rep movsb
mov word ptr es:[0],200
mov word ptr es:[2],0
mov ax,4c00h
int 21h...
stacksg segment
dw 16 dup (0)
stacksg ends
codesg segment
start:
mov ax,0
mov es,ax
mov di,200
mov ax,cs
mov ds,ax
mov si,offset do0
mov cx,offset do0_end-offset do0
cld
rep movsb
mov word ptr es:[0],200
mov word ptr es:[2],0
mov ax,4c00h
int 21h...
阅读全文 |
评论次数(2) |
浏览次数(346) |
所属类型(汇编作业)
[2009-08-27 23:31] 十一章实验11
子程序:小写转大写
letterc:
push ax
push si
pushf
mov si,0
letterc_beg:
mov al,[si]
cmp al,61h
jna letterc_next
cmp al,7ah
jnb letterc_next
sub al,20h
mov [si],al
letterc_next:
cmp al,0
jz letterc_ok
inc si
jmp letterc_beg
letterc_ok:
popf
pop si
pop ax
ret...
letterc:
push ax
push si
pushf
mov si,0
letterc_beg:
mov al,[si]
cmp al,61h
jna letterc_next
cmp al,7ah
jnb letterc_next
sub al,20h
mov [si],al
letterc_next:
cmp al,0
jz letterc_ok
inc si
jmp letterc_beg
letterc_ok:
popf
pop si
pop ax
ret...
阅读全文 |
评论次数(0) |
浏览次数(195) |
所属类型(汇编作业)
[2009-08-27 15:14] 设计课程1
assume ds:datasg,cs:codesg,ss:stacksg,ds:showdata
showdata segment
db 64 dup (0)
showdata ends
datasg segment
dw 1975,1976,1977,1978,1979,1980,1981,1982,1983
dw 1984,1985,1986,1987,1988,1989,1990,1991,1992
dw 1993,1994,1995
dd 16,22,382,1356,2390,8000,16000,24486,50065,9...
showdata segment
db 64 dup (0)
showdata ends
datasg segment
dw 1975,1976,1977,1978,1979,1980,1981,1982,1983
dw 1984,1985,1986,1987,1988,1989,1990,1991,1992
dw 1993,1994,1995
dd 16,22,382,1356,2390,8000,16000,24486,50065,9...
阅读全文 |
评论次数(1) |
浏览次数(208) |
所属类型(汇编作业)
[2009-08-26 18:17] 第十章实验十编写子程序
(1)输出字母
show_str:
push ax
push bx
push cx
push dx
push si
push di
push bp
mov ax,0b800h
mov es,ax
mov ax,160
mul dh
mov di,ax
add dl,dl
mov al,dl
mov ah,0
add di,ax
mov bp,0
show:
mov ax,cx
mov ch,0
mov cl,[si]
jcxz show_strok
mov cx,ax
mov al...
show_str:
push ax
push bx
push cx
push dx
push si
push di
push bp
mov ax,0b800h
mov es,ax
mov ax,160
mul dh
mov di,ax
add dl,dl
mov al,dl
mov ah,0
add di,ax
mov bp,0
show:
mov ax,cx
mov ch,0
mov cl,[si]
jcxz show_strok
mov cx,ax
mov al...
阅读全文 |
评论次数(1) |
浏览次数(267) |
所属类型(汇编作业)
[2009-08-25 20:31] 第九章实验 8 9
实验8 s2处的代码只记录了偏移
复制至s处只会让其跳转至上方第8条语句
即是mov ax,4c00h处
实验9
assume cs:codesg ds:datasg ss:stacksg
datasg segment
db 'Welcome to masm!'
datasg ends
stacksg segment
db 0,0,0
stacksg ends
codesg segment
start:
mov ax,stacksg
mov ss,ax
mov ...
复制至s处只会让其跳转至上方第8条语句
即是mov ax,4c00h处
实验9
assume cs:codesg ds:datasg ss:stacksg
datasg segment
db 'Welcome to masm!'
datasg ends
stacksg segment
db 0,0,0
stacksg ends
codesg segment
start:
mov ax,stacksg
mov ss,ax
mov ...
阅读全文 |
评论次数(2) |
浏览次数(218) |
所属类型(汇编作业)
[2009-08-25 16:39] 检测点 9.1 9.2 9.3
检测点
1.
db 00,00,00,??,??
?号是ip值
2.
mov [bx],bx
mov [bx+2],cs
3.cs=0006
ip=be
检测点9.2
1.mov ch,0
mov cl,[bx]
jcxz ok
inc bx
检测点9.3
inc cx...
1.
db 00,00,00,??,??
?号是ip值
2.
mov [bx],bx
mov [bx+2],cs
3.cs=0006
ip=be
检测点9.2
1.mov ch,0
mov cl,[bx]
jcxz ok
inc bx
检测点9.3
inc cx...
阅读全文 |
评论次数(2) |
浏览次数(252) |
所属类型(汇编作业)