补全编程,利用loop指令,实现在内存2000h段中查找第一个值为0的字节,找到后,将它的偏移地址存储在dx中。
assume cs:code
code segment
start:mov ax,2000h
mov ds,ax
mov bx,0
s: mov cl,[bx]
mov ch,0
inc cl 如果cx等于0时再执行loop s 那么cx=ffffh,cx=1时
执行loop,会先(cx)=(cx)-1,再执行loop
loop s
ok:dec bx
mov dx,bx
mov ax,4c0...
- [tolearn] 谢谢你哈…… 10/19 07:10
- [huang425618] 呵呵,第二种方法原来就是第七章的内容,我当时还没学到那呢。我其实不是为我自己辩解,只是我想说,我们的 10/03 20:00
- [qq93324030] 不觉得第二种方法好,他怎么就能那么确定abc三个段是连续的呢?万一不连续他的程序就没作用了。。 10/02 04:37
- [qq93324030] 谢谢,和你对比了我就不用贴了 10/02 00:18
[2010-10-14 15:05] 检测点9.3
阅读全文 |
评论次数(0) |
浏览次数(244) |
所属类型(汇编作业)
[2010-10-14 14:54] 检测点9.2
补全编程,利用jcxz指令,实现在内存2000h段中查找第一个值为0的字节,找到后,将它的偏移地址存储在dx中。
assume cs:code
code segment
start:mov ax,2000h
mov ds,ax
mov bx,0
mov cl,[bx]
mov ch,0
jcxz ok
inc bx
当ds:[bx]=0时,cx也等于0,jcxz就执行位移
jmp short s
ok:mov dx,bx
mov ax,4c00h
...
assume cs:code
code segment
start:mov ax,2000h
mov ds,ax
mov bx,0
mov cl,[bx]
mov ch,0
jcxz ok
inc bx
当ds:[bx]=0时,cx也等于0,jcxz就执行位移
jmp short s
ok:mov dx,bx
mov ax,4c00h
...
阅读全文 |
评论次数(0) |
浏览次数(222) |
所属类型(汇编作业)
[2010-10-14 13:56] 检测点9.1
(1)
assume cs:code
data segment
db 0,0,0,0 cs:ip ip=0000
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指向程序的第一条指令,在data段中应该定义那些数据?
(2)
assume cs:code
data segment
dd 12345678...
assume cs:code
data segment
db 0,0,0,0 cs:ip ip=0000
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指向程序的第一条指令,在data段中应该定义那些数据?
(2)
assume cs:code
data segment
dd 12345678...
阅读全文 |
评论次数(0) |
浏览次数(219) |
所属类型(汇编作业)
[2010-10-08 01:36] 实验 7
assume cs:codesg
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,179514
dd 3459...
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,179514
dd 3459...
阅读全文 |
评论次数(0) |
浏览次数(247) |
所属类型(汇编作业)
[2010-10-03 20:53] 实验6(2)
(2)编程,完成问题7.9中的程序
assume cs:codesg, ss:stacksg, ds:datasg
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
datasg segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
datasg ends
codesg segment
start: mov ax,stacksg
mov ss,ax
...
assume cs:codesg, ss:stacksg, ds:datasg
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
datasg segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
datasg ends
codesg segment
start: mov ax,stacksg
mov ss,ax
...
阅读全文 |
评论次数(0) |
浏览次数(257) |
所属类型(汇编作业)
[2010-09-30 12:47] 实验5 (6)
assume cs:code
a segment
dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh
a ends
b segment
dw 0,0,0,0,0,0,0,0
b ends
code segment
start: mov ax,a
mov ds,ax
mov ax,b
mov ss,ax
mov sp,10h
mov bx,0
mov cx,8
s: push [bx]
...
a segment
dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh
a ends
b segment
dw 0,0,0,0,0,0,0,0
b ends
code segment
start: mov ax,a
mov ds,ax
mov ax,b
mov ss,ax
mov sp,10h
mov bx,0
mov cx,8
s: push [bx]
...
阅读全文 |
评论次数(0) |
浏览次数(251) |
所属类型(汇编作业)
[2010-09-30 12:43] 实验5 (5)
assume cs:code
a segment
db 1,2,3,4,5,6,7,8
a ends
b segment
db 1,2,3,4,5,6,7,8
b ends
c segment
db 0,0,0,0,0,0,0,0
c ends
code segment
start: mov ax,a
mov es,ax
mov ax,b
mov ss,ax
mov ax,c
mov ds,ax
mov bx,0
...
a segment
db 1,2,3,4,5,6,7,8
a ends
b segment
db 1,2,3,4,5,6,7,8
b ends
c segment
db 0,0,0,0,0,0,0,0
c ends
code segment
start: mov ax,a
mov es,ax
mov ax,b
mov ss,ax
mov ax,c
mov ds,ax
mov bx,0
...
阅读全文 |
评论次数(2) |
浏览次数(594) |
所属类型(汇编作业)
[2010-09-30 11:55] 实验5(1)(2)(3)(4)
(1)
将程序编译连接,用debug加载 跟踪 然后回答问题
①dada段中的数据不变
②程序返回前,cs=1404,ss=1403,ds=1402
③code段的段地址为x,则data段的段地址为 x-2 ,stack段的段地址为 x-1。
data段和stack段的段地址是CPU根据实际执行的 程序 数据和栈空间的位置和代码长度来分配的。
(2)
①dada段中的数据不变
②程序返回前,cs=1404,ss=1403,ds=1402
③code段的段地址为x,则data段的段地址为 x-2 ,stack段的段地址为 x-1。 原理同上
④对于如下定义的段:
name...
将程序编译连接,用debug加载 跟踪 然后回答问题
①dada段中的数据不变
②程序返回前,cs=1404,ss=1403,ds=1402
③code段的段地址为x,则data段的段地址为 x-2 ,stack段的段地址为 x-1。
data段和stack段的段地址是CPU根据实际执行的 程序 数据和栈空间的位置和代码长度来分配的。
(2)
①dada段中的数据不变
②程序返回前,cs=1404,ss=1403,ds=1402
③code段的段地址为x,则data段的段地址为 x-2 ,stack段的段地址为 x-1。 原理同上
④对于如下定义的段:
name...
阅读全文 |
评论次数(0) |
浏览次数(230) |
所属类型(汇编作业)
[2010-09-28 17:46] 检测6.1
(1)下面的程序实现依次用内存0:0-0:15单元中的内容改写程序中的数据,完成程序:
assume cs:codesg
codesg segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
start: mov ax,0
mov ds,ax
mov bx,0
mov cx,8
s: mov ax,[bx]
mov cs:[bx],ax
add bx,2
loop s
mov ax,4c00h
...
assume cs:codesg
codesg segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
start: mov ax,0
mov ds,ax
mov bx,0
mov cx,8
s: mov ax,[bx]
mov cs:[bx],ax
add bx,2
loop s
mov ax,4c00h
...
阅读全文 |
评论次数(1) |
浏览次数(507) |
所属类型(汇编作业)
[2010-09-26 01:26] 实验 4 (3)
(3)下面的程序的功能是将"mov ax,4c00h"之前的指令复制到内存0:200处,补全程序。上机调试,跟踪运行结果。
assume cs:code
code segment
mov ax, code或cs或ss 都是段地址
mov ds,ax
mov ax,0020h
mov es,ax
mov bx,0
mov cx,18h 我的方法是先填一个数字,然后上机调试后再
s:mov al,[bx] 修改过来,请老师指导。
mov es:[bx],al
inc bx
loop s
mov ax...
assume cs:code
code segment
mov ax, code或cs或ss 都是段地址
mov ds,ax
mov ax,0020h
mov es,ax
mov bx,0
mov cx,18h 我的方法是先填一个数字,然后上机调试后再
s:mov al,[bx] 修改过来,请老师指导。
mov es:[bx],al
inc bx
loop s
mov ax...
阅读全文 |
评论次数(0) |
浏览次数(232) |
所属类型(汇编作业)