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

我的博客

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

[2014-08-12 21:52] 第9章实验及课后作业

程式如下,看程式能不能正常返回
assume cs:codesg
codesg segment
        mov ax,4c00h
        int 21h

        start:mov ax,0
        s:nop
        nop
        mov di,offset s
        mov si,offset s2
        mov ax,cs:[si]
        mov cs:[di],ax

        s0:jmp short s

        s1:mov ax,0
        int 21h    
        mov ax,0 

        s2:jmp short s1
        nop

codesg ends
end start
不运行程式来看...
阅读全文 | 评论次数(0) | 浏览次数(326) | 所属类型(汇编作业)

[2014-08-12 21:16] 检测点9.2.9.3

利用jcxz指令,实现在内存2000H段中查找第一个值为0的字节,找到后, 将它的偏移地址存储在dx中
由于jcxz指令的特点为cx=0的时候就跳到标号处,所以可以将内存单元中的值赋给cx,
assume cs:code
code segment
start:mov ax,2000H
mov ds,ax
mov bx,0

s:mov cl,[bx] 一个字节一个字节找,将ch归零,值赋给cl
mov ch,0
inc bx
jcxz ok  利用jcxz指令,如果找到第一个值为零的字节就跳转到ok
ok:mov dx,bx
mov ax,4c00h
int 21h...
阅读全文 | 评论次数(2) | 浏览次数(411) | 所属类型(汇编作业)

[2014-08-12 20:58] 检测点9.1

(1)程序如下
assume cs:code
data segment
?
data ends
code segment
start:mov ax,data
mov ds,ax
mov bx,0
jmp word ptr [bx+1]
code ends
end start

使程序中的jmp指令执行后cs:ip指向程式第一条指令
程式第一条指令的偏移量为0,也就是执行jmp指令后ip=0000
jmp word ptr [bx+1],让内存单元[1]的值为0000
所以可以在data段定义 db 000000,或者 db 3 dup (0)

(2)
a...
阅读全文 | 评论次数(5) | 浏览次数(434) | 所属类型(汇编作业)

[2014-08-06 17:43] 第8章课后作业

点击查看原图
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,140417,197514
dd 345980,590827,803530,1183000,1843000,2759000,3753000,46...
阅读全文 | 评论次数(2) | 浏览次数(476) | 所属类型(汇编作业)

[2013-07-10 16:09] 第7章课后作业

7.4,将datasg中的第一个字符串转化为大写,第二个字符串转化为小写
要将字符串转化,首先要定位字符串的位置和长度,再是执行转化
第一个字符串在段地址为datasg,偏移量从0到4的内存单元中,
第二个字符串在段地址为datasg,偏移量从(5+0)到(5+10)的内存单元中,用and指令将字符串第5位置0,使字符串变为大写,用or指令将第5位置1,使字符串变为小写,
assume cs:codesg,ds:datasg
datasg segment
 db 'BaSiC'
 db 'iNfOrMaTiOn'
datasg ends
codesg segment
sta...
阅读全文 | 评论次数(0) | 浏览次数(352) | 所属类型(汇编作业)

[2013-07-10 13:27] 第7章的一些胡乱总结

and,or,百度查得的含义如下
and,当且仅当两操作数对应的位为真时(就是等于1),结果为真,否则为假(等于0)
or,当且仅当两操作数对应的位为假时(等于0),结果为假,否则为真(等于1)

第7章王爽老师的几句话有必要抄下来:
如果一个问题的解决方案,使我们陷入一种矛盾之中,那么,很可能是我们考虑问题的出发点有了问题,或是说,我们起初运用的规律并不合适


寻址方式的适当应用,使我们可以以更合理的结构来看待所要处理的数据,而为所要处理的看似杂乱无章的数据设计一种清晰的数据结构是程序设计的一个关键的问题...
阅读全文 | 评论次数(0) | 浏览次数(392) | 所属类型(默认类型)

[2013-07-07 23:12] 关于第六章实验任务第二题第4小问

对于如下定义的段,
name segment
...
name ends

如果段中的数据占N个字节,程序加载后,该段的实际占有空间为

答案不是N个字节,答案为 (N/16+1)*16 单位为字节,或者 (N+15)/16,单位为节(16字节称为一个节),具体分析在汇编论坛找到了详细的答案,这里我厚着脸皮复制粘贴过来跟大家分享,原文地址是

http://www.asmedu.net/bbs/pasteinfo.jsp?part=1&level=book&kind=1007&qkSg=2&qID=67937&readSg=1

下面是详细分析
对于如下定义的段: 
...
阅读全文 | 评论次数(0) | 浏览次数(369) | 所属类型(默认类型)

[2013-07-07 22:42] 第六章实验任务

assume cs:code,ds:data,ss:stack
data segment
        dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
data ends

stack segment
 dw 0,0,0,0,0,0,0,0
stack ends

code segment
start:        mov ax,stack
        mov ss,ax
        mov sp,16
        
        mov ax,data
        mov ds,ax
        
        push ds:[0]
        push ds:[2]
        pop ds:[2]
        pop ...
阅读全文 | 评论次数(0) | 浏览次数(359) | 所属类型(汇编作业)

[2013-07-07 20:54] 第六章课后作业

检测点6.1
1.下面的程式实现依次用内存0:0-0:15单元中的内容改写程式中的数据,完成程式:
要传送的数据在哪里,要传送到哪里去,有多长
要传送的数据在内存单元0:0-0:15单元中,以段地址为0,偏移量为0-15的一段内存空间,用bx记录偏移量
要传送到哪里去,传送到程式中,程式中的数据地址如何定位,段地址为CS,偏移量为0-f,大小为8个字单元,16个字节,用循环实现,一次传送一个字,要传送8次
assume cs:codesg
        codesg segment
                ;定义8个字单元的数据,也可以说开辟8个字单元空间
           dw 0123h,0456h,...
阅读全文 | 评论次数(0) | 浏览次数(332) | 所属类型(汇编作业)

[2013-07-06 17:45] 第五章课后作业

点击查看原图
1.编程,向内存0:200-0:23F依次传送数据0-63(3FH)
(1)要复制的是什么,从哪里到哪里
向内存单元传送数据,首先要定位内存单元的地址,0:200-0:23F可以看成是段地址为0,偏移地址为200-23F的一段连续的内存空间,可以表示为200H+(0)-200H+(3F),编译器在对200和200H时有不同的表现,程式里的200在编译后会变为C8,200H编译后是200

其次要定位要传送的数据在哪里,有多长,这里是传送0-63,可以用一个8位寄存器保存,长度为3FH,程式用循环实现,每次复制一个字节,一共复制64次

assume cs:code
        code s...
阅读全文 | 评论次数(0) | 浏览次数(362) | 所属类型(汇编作业)
『 查看更多文章 』