- [kanwangxue] 如果是文字的,不是特别好啊,体力活,如果文字还加点动画,那就必须顶了。 01/15 01:10
- [kanwangxue] 必须顶啊。 01/15 00:54
- [ltoiii] 既然是实现loop功能,是否要考虑s和se标号? mov bx,offset s - offset 12/09 12:09
- [xiaoyao2012] 正确 11/01 15:33
- [xuer2016] 又找到2条被我忽视的地方: 1.PUSH 和 POP 针对字单元 2.POP 不能是CS 10/26 10:57
- [xuer2016] 学习了 我书写不规范,16进制字母前不加0,后面不加H,以后要注意了。。。 10/26 10:51
- [xuer2016] 来老师这学习下 10/26 10:31
- [youthangel] 不妙,CPU的利用率一下子就上去了。还好我的处理器不是太弱,35%左右的利用率。建议博主在修改一下 10/20 08:23
- [fpamc] 在我心里她就是我的女神。 10/02 08:58
- [newpeople] 你女朋友用得了简直就是一个女神…… 10/01 08:10
- [99998888] 请您指点一下如何找到会ASSEMBLER 语言的翻译,翻译成中文或英文。我的QQ ; 9097815 07/25 09:56
- [jeremy] 我觉得你学习的挺好,可以加你扣扣吗?我的469614823 08/07 14:46
- [zhangbo0805] 哈哈, 你好呀!很希望认识你呀!我发现你学习的积极性很高!正想向您学习呢! 07/31 23:31
- [tomato] 知道了,排得还挺满。 05/29 16:35
- [tomato] 现在学习情况怎么样?在做课设二还是什么? 05/29 10:41
- [tomato] 你的留言收到了。 05/05 23:51
- [fpamc] 开始学习c咯! 05/03 21:40
- [fpamc] 居然不能发博客了……! 04/22 21:03
- [tomato] 你相册中的游戏界面我看过了,非常好,界面很漂亮,很有创造力。博主,很有潜力。加油,一定能把这个游戏做 04/20 23:46
- [fpamc] 忙了半个月,不在家,没时间学习汇编。 但是在途中想到了一个有史以来最难的程序。对于刚学完9章的我。 04/13 20:56
[2012-05-06 21:01] 实验十三(二)
;名称:int 7ch中断例程安装
;参数:(cx)=循环次数,(bx)=位移
;功能:完成loop指令的功能
assume cs:code
code segment
start:mov ax,cs
mov ds,ax
mov si,offset lp
mov ax,0
mov es,ax
mov di,200h
mov cx,offset lpend - offset lp
cld
rep movsb
mov word ptr es:[7ch*4],200h
mov word ptr es:[7...
;参数:(cx)=循环次数,(bx)=位移
;功能:完成loop指令的功能
assume cs:code
code segment
start:mov ax,cs
mov ds,ax
mov si,offset lp
mov ax,0
mov es,ax
mov di,200h
mov cx,offset lpend - offset lp
cld
rep movsb
mov word ptr es:[7ch*4],200h
mov word ptr es:[7...
阅读全文 |
评论次数(1) |
浏览次数(207) |
所属类型(汇编作业)
[2012-05-06 20:57] 实验十三(一)
第十三章
检测点13.1
(1)
7ch中断例程如下:
lp: push bp
mov bp,sp
dec cx
jcxz lpret
add [bp+2],bx
lpret: pop bp
iret
(1)在上面的内容中,我们用7ch中断例程实现loop的功能,则上面的7ch中断例程所能进行的最大转移位移是多少?
最大位移是FFFFH
因为,bx最大值为ffffh
(2)
用7ch中断例程完成jmp near ptr s指令功能,用bx向中断例程传送转移位移。
把loop指令功能的中断例程中的指令换成如下就行了:
push bp
mo...
检测点13.1
(1)
7ch中断例程如下:
lp: push bp
mov bp,sp
dec cx
jcxz lpret
add [bp+2],bx
lpret: pop bp
iret
(1)在上面的内容中,我们用7ch中断例程实现loop的功能,则上面的7ch中断例程所能进行的最大转移位移是多少?
最大位移是FFFFH
因为,bx最大值为ffffh
(2)
用7ch中断例程完成jmp near ptr s指令功能,用bx向中断例程传送转移位移。
把loop指令功能的中断例程中的指令换成如下就行了:
push bp
mo...
阅读全文 |
评论次数(2) |
浏览次数(694) |
所属类型(汇编作业)
[2012-05-05 20:09] 实验十二,延伸
看到原来的除法溢出中断处理程序,显示的字符串会随着行数的变化而变化,所以做了一个伪功能的中断处理程序。但是,毕竟程序不完善,且程序想法不同。所以有如下两个问题:
1.字符串第一次不会出现,当“程序正常返回”出现时,按第二次才会出现。
2.可能会有时候显示检测不准的时候。
assume cs:code
code segment
start:mov ax,cs
mov ds,ax
mov si,offset do0 ;设置源地址
mov ax,0
mov es,ax
mov di,200...
1.字符串第一次不会出现,当“程序正常返回”出现时,按第二次才会出现。
2.可能会有时候显示检测不准的时候。
assume cs:code
code segment
start:mov ax,cs
mov ds,ax
mov si,offset do0 ;设置源地址
mov ax,0
mov es,ax
mov di,200...
阅读全文 |
评论次数(4) |
浏览次数(217) |
所属类型(汇编作业)
[2012-05-04 20:24] 第十二章作业
检测点12.1
(1)用debug查看内存,情况如下:
0000:0000 68 10 A7 00 8B 01 70 00-16 00 9D 03 8B 01 70 00
则3号中断源对应的中断处理程序入口的偏移地址的内存单位的地址为: 0070:018b
检测点涉及相关内容:
一个表项存放一个中断向量,也就是一个中断处理程序的入口地址,这个入口地址包括段地址和偏移地址,一个表项占两个字,高地址存放段地址,低地址存放偏移地址
检测点12.1
(2)
存储N号中断源对应的中断处理程序入口的偏移地址的内存单元的地址为: 4N
存储N号中断源对应的中断处理程序入口的段...
(1)用debug查看内存,情况如下:
0000:0000 68 10 A7 00 8B 01 70 00-16 00 9D 03 8B 01 70 00
则3号中断源对应的中断处理程序入口的偏移地址的内存单位的地址为: 0070:018b
检测点涉及相关内容:
一个表项存放一个中断向量,也就是一个中断处理程序的入口地址,这个入口地址包括段地址和偏移地址,一个表项占两个字,高地址存放段地址,低地址存放偏移地址
检测点12.1
(2)
存储N号中断源对应的中断处理程序入口的偏移地址的内存单元的地址为: 4N
存储N号中断源对应的中断处理程序入口的段...
阅读全文 |
评论次数(2) |
浏览次数(214) |
所属类型(汇编作业)
[2012-05-02 19:42] 第十一章作业
第十一章
检测点11.1
写出下面每条指令执行后,ZF、PF、SF、等标志位的值。
sub al,al al=0h ZF=1 PF=1 SF=0
mov al,1 al=1h ZF=1 PF=1 SF=0
push ax ax=1h ZF=1 PF=1 SF=0
pop bx bx=1h ZF=1 PF=1 SF=0
add al,bl al=2...
检测点11.1
写出下面每条指令执行后,ZF、PF、SF、等标志位的值。
sub al,al al=0h ZF=1 PF=1 SF=0
mov al,1 al=1h ZF=1 PF=1 SF=0
push ax ax=1h ZF=1 PF=1 SF=0
pop bx bx=1h ZF=1 PF=1 SF=0
add al,bl al=2...
阅读全文 |
评论次数(3) |
浏览次数(224) |
所属类型(汇编作业)
[2012-05-02 19:37] 课程设计1(续)
dtoc: ;定义子程序
;名称:dtoc
;功能:将dword型数据转变为表示十进制的字符串,字符串以0为结尾符。
;参数:(ax)=dword型数据的低16位;
; (dx)=dword型数据的高16位;
; ds:si指向字符串首地址。
;返回:无。
push ax
push bx
push cx
push dx
push si ;以上皆为存储主程序中各寄存器的值
mov bx,0 ...
;名称:dtoc
;功能:将dword型数据转变为表示十进制的字符串,字符串以0为结尾符。
;参数:(ax)=dword型数据的低16位;
; (dx)=dword型数据的高16位;
; ds:si指向字符串首地址。
;返回:无。
push ax
push bx
push cx
push dx
push si ;以上皆为存储主程序中各寄存器的值
mov bx,0 ...
阅读全文 |
评论次数(3) |
浏览次数(189) |
所属类型(汇编作业)
[2012-05-02 19:36] 课程设计1
assume cs:code,ds:data,es:table
table 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'
;以上是表示21年的21个字符串
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,19...
table 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'
;以上是表示21年的21个字符串
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,19...
阅读全文 |
评论次数(3) |
浏览次数(213) |
所属类型(汇编作业)
[2012-04-23 15:35] 实验十(二)
③
dtoc: ;定义子程序
;名称:dtoc
;功能:将word型数据转变为表示十进制的字符串,字符串以0为结尾符
;参数:(ax)=word型数据 ds:si指向字符串的首地址
;返回:无
push ax
push bx
push cx
push dx
push si ;以上皆为存储主程序中各寄存器的值
mov bx,0 ;将bx置零,用于存储位数
change: mov cx,10d ...
dtoc: ;定义子程序
;名称:dtoc
;功能:将word型数据转变为表示十进制的字符串,字符串以0为结尾符
;参数:(ax)=word型数据 ds:si指向字符串的首地址
;返回:无
push ax
push bx
push cx
push dx
push si ;以上皆为存储主程序中各寄存器的值
mov bx,0 ;将bx置零,用于存储位数
change: mov cx,10d ...
阅读全文 |
评论次数(1) |
浏览次数(138) |
所属类型(汇编作业)
[2012-04-23 15:33] 实验十(一)
实验十
三个课本子程序,一个扩展子程序
①
show_str: ;定义子程序
;名称:show_str
;功能:在指定的位置,用指定的颜色,显示一个用0结束的字符串。
;参数:(dh)=行号(取值范围1~25)
; (dl)=列号(取值范围1~80)
; (cl)=颜色,ds:si指向字符串的首地址
;返回:无
push cx
push es
push si
push di ;以上皆为保存主程序各寄存器的值
mov ax,0b800...
三个课本子程序,一个扩展子程序
①
show_str: ;定义子程序
;名称:show_str
;功能:在指定的位置,用指定的颜色,显示一个用0结束的字符串。
;参数:(dh)=行号(取值范围1~25)
; (dl)=列号(取值范围1~80)
; (cl)=颜色,ds:si指向字符串的首地址
;返回:无
push cx
push es
push si
push di ;以上皆为保存主程序各寄存器的值
mov ax,0b800...
阅读全文 |
评论次数(1) |
浏览次数(148) |
所属类型(汇编作业)
[2012-04-22 20:56] 第十章作业
写贪吃蛇知识不够用了,只能加大马力!
拿下了第十章
还剩下课程设计还没做。
……………………………………………………………………………………………………
第十章
检测点10.1
补全程序,实现从内存1000:0000处开始执行指令。
assume cs:code
stack segment
db 16 dup (0)
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,16
mov ax, 1000h
push ax
mov ax, 0
push ax
re...
拿下了第十章
还剩下课程设计还没做。
……………………………………………………………………………………………………
第十章
检测点10.1
补全程序,实现从内存1000:0000处开始执行指令。
assume cs:code
stack segment
db 16 dup (0)
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,16
mov ax, 1000h
push ax
mov ax, 0
push ax
re...
阅读全文 |
评论次数(1) |
浏览次数(144) |
所属类型(汇编作业)