;welcome to masm! 共16个字符,一行是80个字符,字符串应该从第32列开始显示
;显示3行字符,一共是25行,所以字符串应该从第12行开始显示
;B8000H---B8F9FH是第一页显示的内存,一页中的坐标(行,列)的内存位置的计算:B8000+(行*80+列)*2
assume cs:codesg
data segment
db 'welcome to masm!' ;定义显示的字符
db 02H, 24H, 71H ;定义显示字符的颜色属性
data ends
stack segment
db 16 dup (0)...


- [whfeiya] 这里的IP执行后一样是100,不会再后面又变回0003了估计没有经过DEBUG验证 09/12 17:02
- [mywiil] 二楼的建议包含了很本质的原理,博主反思的对。 06/29 19:14
- [joneui] s: mov [bx], bx 改成s: mov [bx], bl 06/26 21:41
- [游客] (1)移送数据应该字节单位,使用字传送有逻辑问题 (3)楼主的思路没有问题。 06/26 19:37
- [joneui] 谢谢你的指导,是有一个错误 (2) mov ax,1000H mov ss,ax 06/25 22:33
- [mess] 其中有一个错误^_^ 06/21 13:36
- [mouse] 正确。 06/17 16:41
- [mouse] 自己能debug得到正确验证,不多说了。 06/17 16:37
- [mouse] 正确。 06/17 16:36
- [mouse] 正确。 06/17 16:35
[2010-07-15 23:42] 实验9 根据材料编程
阅读全文 |
评论次数(0) |
浏览次数(394) |
所属类型(汇编作业)
[2010-07-15 23:41] 实验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...
运行后再思考:为什么是这种结果?
通过这个程序加深对相关内容的理解。
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...
阅读全文 |
评论次数(0) |
浏览次数(583) |
所属类型(汇编作业)
[2010-07-15 23:41] 检测点9.3
补全编程,利用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 cx
inc bx
loop s
ok:dec bx
mov dx, bx
mov ax, 4c00H
int 21h
code ends
...
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
...
阅读全文 |
评论次数(0) |
浏览次数(389) |
所属类型(汇编作业)
[2010-07-15 23:41] 检测点9.2
补全编程,利用jcxz指令,实现在内存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
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 cl, [bx]
mov ch, 0
jcxz ok
inc bx
jmp short s
ok:mov dx, bx
mov ax, 4c00H
int 21h
code ends
end start...
阅读全文 |
评论次数(0) |
浏览次数(359) |
所属类型(汇编作业)
[2010-07-15 23:40] 检测点9.1
(1)程序如下
assume cs:code
data segment
db 3 dup (0)
data ends
code segment
start:mov ax, data
mov ds, ax
mov bx, 0
jmp word ptr [bx+1]
mov ax, 4c00h
int 21h
code ends
end start
若要使程序中的jmp指令执行后,CS:IP指向程序的第一条指令,在data段中应该定义哪些数据?
(2)程序如下:
assume cs:code
d...
assume cs:code
data segment
db 3 dup (0)
data ends
code segment
start:mov ax, data
mov ds, ax
mov bx, 0
jmp word ptr [bx+1]
mov ax, 4c00h
int 21h
code ends
end start
若要使程序中的jmp指令执行后,CS:IP指向程序的第一条指令,在data段中应该定义哪些数据?
(2)程序如下:
assume cs:code
d...
阅读全文 |
评论次数(0) |
浏览次数(415) |
所属类型(汇编作业)
[2010-07-11 19:22] 实验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'
;54H
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,59...
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'
;54H
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,59...
阅读全文 |
评论次数(0) |
浏览次数(389) |
所属类型(汇编作业)
[2010-07-11 09:42] 实验6 实践课程中的程序
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, datasg
mov ...
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, datasg
mov ...
阅读全文 |
评论次数(0) |
浏览次数(402) |
所属类型(汇编作业)
[2010-07-05 22:07] 实验五 编写、调试具有多个段的程序
(1) 将下面的程序编译连接,用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, ...
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, ...
阅读全文 |
评论次数(0) |
浏览次数(258) |
所属类型(汇编作业)
[2010-07-05 22:06] 检测点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
...
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
...
阅读全文 |
评论次数(0) |
浏览次数(238) |
所属类型(汇编作业)
[2010-06-25 22:23] 实验四
(1)/(2)
assume cs:abc1
abc1 segment
mov ax, 0020H
mov ds, ax
mov bx, 0000H
mov cx, 64
s: mov [bx], bx
inc bx
loop s
mov ax,4c00H
int 21H
abc1 ends
end
(3)
assume cs:code
code segment
mov ax, cs //cs
mov ds, ax
mov ax, 0020H
m...
assume cs:abc1
abc1 segment
mov ax, 0020H
mov ds, ax
mov bx, 0000H
mov cx, 64
s: mov [bx], bx
inc bx
loop s
mov ax,4c00H
int 21H
abc1 ends
end
(3)
assume cs:code
code segment
mov ax, cs //cs
mov ds, ax
mov ax, 0020H
m...
阅读全文 |
评论次数(3) |
浏览次数(251) |
所属类型(汇编作业)