汇编网首页登录博客注册
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) | 浏览次数(376) | 所属类型(汇编作业)

[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) | 浏览次数(486) | 所属类型(汇编作业)

[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) | 浏览次数(514) | 所属类型(汇编作业)

[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) | 浏览次数(556) | 所属类型(汇编作业)

[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) | 浏览次数(424) | 所属类型(汇编作业)

[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) | 浏览次数(429) | 所属类型(汇编作业)

[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) | 浏览次数(372) | 所属类型(汇编作业)

[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) | 浏览次数(433) | 所属类型(汇编作业)

[2013-06-29 15:24] 第三章课后作业

点击查看原图
3.1
1.Debug中, d 0:0 1f查看内存,结果如下
          0  1  2  3  4  5  6  7  8  9  A  B  C D  E F
0000:000 70 80 F0 30 EF 60 30 E2-00 80 80 12 66 20 22 60        10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1E 1F
0000:0010 62 26 E6 D6 CC 2E 3C 3B-AB BA 00 00 26 06 66 88

下面的程序执行前,AX=0,BX=0,写出每条汇编指令执行完后相关寄存器的值 ...
阅读全文 | 评论次数(1) | 浏览次数(424) | 所属类型(汇编作业)

[2013-06-27 14:46] 第二章课后作业

点击查看原图
2.1
1.写出每条汇编指令执行后相关寄存器中的值
mov ax,62627,62627小于65535,转化为16进制,ax=F4A3
mov ah,31H,修改ax高位字节,不影响al,ax=31A3
mov al,23H,修改ax低位字节,不影响ah,ax=3123
add ax,ax,ax=3123+3123=6246
mov bx,826CH,bx=826C
mov cx,ax,   cx=6246
mov ax,bx    ax=826C
add ax,bx    ax=826C+826C=104D8,ax为16位寄存器,前面的1不能保存,ax=04D8
mov ...
阅读全文 | 评论次数(5) | 浏览次数(360) | 所属类型(汇编作业)
页码数(2):  1  2