汇编网首页登录博客注册
chinatree的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
友情链接

[2011-09-11 00:19] 给大家找个小case玩。

请写出一个子程序abcd:
功能:找出给定的一个段空间内最大的偶数字节。
入口参数:si=0
出口参数:al=最大的偶数字节,si=它的偏移地址。
看下哪位大侠的用的内存最少,截止至9月11日24点,就当给自己的中秋礼物吧,我也会写的。...
阅读全文 | 评论次数(4) | 浏览次数(444) | 所属类型(默认类型)

[2011-09-11 00:03] 汇编语言学习小结

经过了几个月断断续续的学习,终于将这本书学完了,在这里做个小结。
汇编语言:汇编语言是机器语言的另一中表达方式,它能很直接地控制你的计算机。我一直认为任何语言实现的功能,用汇编语言都能做到,因为任何语言在执行时都是机器指令。

寄存器:8086有21个寄存器:ax,bx,cx,dx,cs,ds,es,ss,sp,bp,si,di,ah,al,bh,bl,ch,cl,dh,dl ,PSW。

总线:8086有16根数据线,20根地址线,?根控制总线。

内存:8086最多能拥有1MB的内存空间,在使用内存时要指出要访问的内存单元有多长,在什么位置。

栈:栈是一种特殊的内存空间...
阅读全文 | 评论次数(8) | 浏览次数(1003) | 所属类型(汇编作业)

[2011-09-09 23:55] 无题

从接触汇编到现在已经有大半年了,前几个月都是断断续续的看书,看着看着就烦,因为看不懂。有时看别人的代码能看懂,让自己写就写不出,感觉还还挺纳闷,要说无论哪一行代码都能看懂,就算看不查查指令集就好,可是把它们放到一起就晕了。那时候也没有电脑,看书用手机,而且必须是纯文本txt的,书上好多图都没有。
有一次在网吧终于鼓足勇气写了个hello,world!,学书上说的用masm进行编译,结果一那个窗口一闪没了,可是生成的文件在哪呢?感觉失望极了,后来在看学把这个问题发出来(当时还不知道这个坛),知道了一个词:'错误报告',可是那些大牛并没有说怎样查看,当时我是多么的希望在masm编译结束时能停顿一...
阅读全文 | 评论次数(2) | 浏览次数(366) | 所属类型(汇编作业)

[2011-09-09 21:12] 课程设计2

点击查看原图
在家里憋了三天,终于写出来了。
assume cs:code,ds:code,ss:code,es:code
code segment
mov ax ,offset lll;把代码写到软盘的偏移地址
push ax
cmp cx,215h;这个215H是代码总长度,如果是被操作系统执行的话CX就是215H,就会跳走到写软盘,如果是被BIOS加载的,它的值应该是随机的
jnz sl
ret
sl:mov ax,1000h;先将程序读到另一空间偏移地址为0处
mov es,ax
xor bx,bx
mov dx,bx
mov ax,201h
mov cx,1
int 1...
阅读全文 | 评论次数(2) | 浏览次数(358) | 所属类型(汇编作业)

[2011-09-06 10:57] 第17章实验的验证

点击查看原图
在虚拟机中,写了两个程序,一个把数据段定义的512字节的字符串写入软盘,另一个从软盘把它们读出到屏幕:
stack segment
db 32 dup (0)
stack ends
data segment
db 64 dup ('a',2,'b',2,'c',2,'d',2);64*8=512 bytes
data ends
code segment
assume cs:code,ds:code,ss:stack
start:mov ax,stack
mov ss,ax
push cs
pop ds
xor ax,ax
mov es,ax
mov di,200h...
阅读全文 | 评论次数(5) | 浏览次数(451) | 所属类型(汇编作业)

[2011-09-06 00:04] 第17章检测点及实验17

点击查看原图
检测点 17·1
“在int 16h中断中,一定有设置if=1的指令。”这种说法对吗?
答:对的,因为int 9是可屏蔽中断,如果被屏蔽掉的话,在键盘缓冲区就没有可读取的字符了,而且在用户调用int 16h时cpu会将if和tf置0。


安装一个新的int 7ch中断例程,实现通过逻辑扇区号对软盘进行读写。
  参数说明:
  (1)用ah寄存器传递功能号:0表示读,1表示写;
  (2)用dx寄存器传递要读写的扇区的逻辑扇区号;
  (3)用es:bx指向存储读出数据或写入数据的内存区。
  提示,用逻辑扇区号计算出面号、磁道号、扇区号后,调用int 13h中断例程进行...
阅读全文 | 评论次数(1) | 浏览次数(340) | 所属类型(汇编作业)

[2011-09-05 14:48] 第16章检测点及实验16

点击查看原图
检测点 16·1
下面的程序将code段中的a处的8个数据累加,结果存储到b处的双字中,补全程序。
assume cs:code
code segment 
a dw 1,2,3,4,5,6,7,8
b dd 0
start:mov si,0
mov cx,8
s:mov ax,a[si]
add b[0],ax
adc b[2],0
add si,2
loop s
mov ax,4c00h
int 21h
code ends
end start

检测点 16·2
下面的程序将data段中a处的8个数据累加,将结果存储到b处的字中,补全程序。
assu...
阅读全文 | 评论次数(2) | 浏览次数(371) | 所属类型(汇编作业)

[2011-09-04 20:56] 第15章检测点及实验15

点击查看原图
(1)仔细分析一下上面的int 9中断例程,看看是否可以精A间-,z-一下?
    其实在我们的int 9中断例程中,模拟n指令调用原int 9中断例程的程序段是可以
精简的,因为在进入中断例程后,IF和TF都已经置0,没有必要再进行设置了。对于程
序段:
pushf 
pushf
pop ax
and ah,11111100b
push ax
popf
call dword ptr ds:[0]
可以精简为:
pushf
call dword ptr ds:[0]
两条指令。
    (2)仔细分析上面程序中的主程序,看看有什么潜在的问题?
    在主程序...
阅读全文 | 评论次数(5) | 浏览次数(543) | 所属类型(汇编作业)

[2011-09-04 20:01] 第14章检测点及实验14

检测点14·1
(1)编程,读取CMOS RAM的2号单元的内容。
assume cs:code
code segment
start:mov al,2
out 70h,al
in al,71h
mov ax,4c00h
int 21h
code ends
end start

(2)编程,向CMOS RAM的2号单元写入0。
assume cs:code
code segment
start:mov al,2
out 70h,al
mov al,0
out 71h,al
mov ax,4c00h
int 21h
code ends
end star...
阅读全文 | 评论次数(2) | 浏览次数(336) | 所属类型(汇编作业)

[2011-09-03 19:01] 第13章检测点及实验13

检测点13·1
    (1)在上面的内容中,我4f]91 7ch中断例程实现loop的功能,则上面的7ch中断例
程所能进行的最大转移位移是多少?

答:32767~(-32768)

(2)用7ch中断例程完成jmp near ptr s指令的功能,用bx向中断例程传送转移位移。
    应用举例:在屏幕的第12行,显示data段中以0结尾的字符串。
assume cs:code
data segment
    db "conversation",0
data ends
code segment
start:mov ax,data
mov ds,ax
mov...
阅读全文 | 评论次数(1) | 浏览次数(317) | 所属类型(汇编作业)
页码数(4):  1  2  3  4