实验9 根据材料编程
这个编程任务必须在进行下面的课程之前独立完成,因为后面的课程中,需要通过这个实验而获得的编程经验。
编程:在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串‘welcome to masm!'。
assume cs:codesg,ds:data
data segment
db 'welcome to masm!'
db 00000010B,00100100B,01110001B
data ends
codesg segment
start:
mov ax,data
mov ds,ax
mov ax,0B800h
add a...
- [martian] 程序没有问题, 11/08 19:46
- [游客] 呵呵,加油! 11/05 21:04
- [mouse] 这个没问题,原因是loop的操作。思考前面的jcxz 10/16 12:06
- [mouse] >mov cx,1 >mov cl,[bx] >jcxz ok ------------ 10/16 12:05
- [mouse] 这个程序的做法在实际编写程序中也很有用~ 10/16 12:04
- [mouse] 能自己看到结果,就不多说了^_^ 10/16 12:03
- [mouse] 答案都对 10/16 12:02
- [foamsand] 确实是错了。第二题的第三问应该是:设程序加载后,code段的段地址为X,则data段的段地址为X-2 10/05 16:50
- [tomato] 正确! 10/05 09:17
- [tomato] 正确! 10/05 09:15
[2008-10-16 11:44] 实验9
阅读全文 |
评论次数(1) |
浏览次数(604) |
所属类型(汇编作业)
[2008-10-16 11:42] 实验8
实验8 分析一个奇怪的程序
分析下面的程序,在运行前思考:这个程序可以正确返回吗?
运行后再思考:为什么是这种结果?
通过这个程序加深对相关内容的理解。
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 sh...
分析下面的程序,在运行前思考:这个程序可以正确返回吗?
运行后再思考:为什么是这种结果?
通过这个程序加深对相关内容的理解。
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 sh...
阅读全文 |
评论次数(1) |
浏览次数(609) |
所属类型(汇编作业)
[2008-10-16 11:41] 检测点9.3
补全编程,利用loop指令,实现在内存2000H段中查找第一个值为0的byte,找到后,将它的偏移地址存储在dx中。
assume cs:code
code segment
start:
mov ax,2000H
mov ds,ax
mov bx,0
s:mov cl,[bx]
mov ch,0
>inc cx
inc bx
loop s
ok:dec bx
mov dx,bx
mov ax,4c00h
int 21h
code ends
end start...
assume cs:code
code segment
start:
mov ax,2000H
mov ds,ax
mov bx,0
s:mov cl,[bx]
mov ch,0
>inc cx
inc bx
loop s
ok:dec bx
mov dx,bx
mov ax,4c00h
int 21h
code ends
end start...
阅读全文 |
评论次数(1) |
浏览次数(555) |
所属类型(汇编作业)
[2008-10-16 11:40] 检测点9.2
补全编程,利用jcxz指令,实现在内存2000H段中查找第一个值为0的字节,找到后,将它的偏移地址存储在dx中。
assume cs:code
code segment
start:
mov ax,2000H
mov ds,ax
mov bx,0
s:
>mov cx,1
>mov cl,[bx]
>jcxz ok
>inc bx
jmp short s
ok:
mov dx,bx
mov ax,4c00h
int 21h
code ends
end start...
assume cs:code
code segment
start:
mov ax,2000H
mov ds,ax
mov bx,0
s:
>mov cx,1
>mov cl,[bx]
>jcxz ok
>inc bx
jmp short s
ok:
mov dx,bx
mov ax,4c00h
int 21h
code ends
end start...
阅读全文 |
评论次数(1) |
浏览次数(541) |
所属类型(汇编作业)
[2008-10-16 11:40] 检测点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指向程序的第一条指令,在data段中应该定义哪些数据?
dw 8 dup (0)
2) 程序如下:
assume cs:code
data segment
dd 12345678H
data ends
code segment
st...
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指向程序的第一条指令,在data段中应该定义哪些数据?
dw 8 dup (0)
2) 程序如下:
assume cs:code
data segment
dd 12345678H
data ends
code segment
st...
阅读全文 |
评论次数(1) |
浏览次数(591) |
所属类型(汇编作业)
[2008-10-12 12:04] 实验7 寻址方式在结构化数据访问中的应用
assume cs:codesg,ss:stack,ds:data,es:table
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,5...
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,5...
阅读全文 |
评论次数(1) |
浏览次数(579) |
所属类型(汇编作业)
[2008-10-02 19:32] 实验5 编写、调试具有多个段的程序
一、 将下面的程序编译连接,用Debug加载、跟踪,然后回答问题:
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]
pus...
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]
pus...
阅读全文 |
评论次数(2) |
浏览次数(602) |
所属类型(汇编作业)
[2008-10-02 19:32] 检测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
int 21h
codesg ends
end start
2) 下面的程序实...
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
int 21h
codesg ends
end start
2) 下面的程序实...
阅读全文 |
评论次数(1) |
浏览次数(599) |
所属类型(汇编作业)
[2008-10-01 19:52] 实验4 [bx]和loop的使用
1) 编程,向内存0:200-0:23F依次传送数据0-63(3FH)。
2) 编程,向内存0:200-0:23F依次传送数据0-63(3FH),程序中只能使用9条指令,9条指令中包括"mov ax,4c00h"和"int 21h"。
assume cs:code
code segment
mov ax,20h
mov es,ax
mov bx,0
mov cx,40h
s: mov es:[bx],bl
inc bl
loop s
mov ax,4c00h
int 21h
code end...
2) 编程,向内存0:200-0:23F依次传送数据0-63(3FH),程序中只能使用9条指令,9条指令中包括"mov ax,4c00h"和"int 21h"。
assume cs:code
code segment
mov ax,20h
mov es,ax
mov bx,0
mov cx,40h
s: mov es:[bx],bl
inc bl
loop s
mov ax,4c00h
int 21h
code end...
阅读全文 |
评论次数(1) |
浏览次数(687) |
所属类型(汇编作业)
[2008-09-25 20:20] 第四章 实验3 编程、编译、连接、跟踪
1) 将下面的程序保存为t1.asm文件,将其生成可执行文件t1.exe;
>Edit
assume cs:codesg
codesg segment
mov ax,2000H
mov ss,ax
mov sp,0
add sp,4
pop ax
pop bx
push ax
push bx
pop ax
pop bx
mov ax,4c00H
int 21h
codesg...
>Edit
assume cs:codesg
codesg segment
mov ax,2000H
mov ss,ax
mov sp,0
add sp,4
pop ax
pop bx
push ax
push bx
pop ax
pop bx
mov ax,4c00H
int 21h
codesg...
阅读全文 |
评论次数(1) |
浏览次数(512) |
所属类型(汇编作业)
『 查看更多文章 』