前些天做的。
将每行字符串的前四个字母大写。
assume cs:code,ds:data,ss:stack
stack segment
dw 0,0,0,0,0,0,0,0
stack ends
data segment
db '1. display '
db '2. brows '
db '3. replaces '
db '4. modify '
data ends
code segment
start:
mov ax,data
mov ds,ax
...


- [游客] <a href="http://www.dingtu.net/" target="_blank">补 04/18 17:21
- [xiaochong] 看的一遍,很正确,go on ! 03/28 12:36
- [guoguo] 慌慌张张的忘掉了一句指令。万分谢谢! 03/24 17:14
- [younggay] 博主存放的数据好像不是a段中的哟。 仔细! 03/24 10:08
- [younggay] 认为ss,只能与sp组合,担心ss:[bx],执行不了,经实验证实可以搭配使用. ======= 03/24 10:07
- [app] 6有逻辑错误。 03/23 23:18
- [guoguo] 谢谢wdm 指教! 03/21 16:38
- [wdm] 将最后一条指令“end start”改为“end”,第3个程序仍然可以正确执行。原因是其他栈段提供了 03/21 14:46
- [wdm] 如果段中的数据占N个字节,则程序加载后,该段实际占有的空间为: N 除以16取整加1后,再乘以1 03/21 14:40
- [wdm] 不错,继续进军下一章~ 03/17 21:02
[2008-03-28 08:42] 实验6
阅读全文 |
评论次数(1) |
浏览次数(723) |
所属类型(汇编作业)
[2008-03-23 14:53] 实验5(2)
5、程序如下,编写code段中的代码,将a段和b段中的数据依次相加,将结果存到c段中.
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 ds,ax
mov ax,c
mov ss,ax
...
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 ds,ax
mov ax,c
mov ss,ax
...
阅读全文 |
评论次数(4) |
浏览次数(877) |
所属类型(汇编作业)
[2008-03-21 10:47] 实验5(1)
学习一段时间汇编后,感觉到自己多了一点点学习动力,但是总不是很积极的交作业.自认为自己调试过了,就不愿意再重新组织一编,上传到网上.懒散的情绪仍在,自我反省!!
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
s...
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
s...
阅读全文 |
评论次数(3) |
浏览次数(1046) |
所属类型(汇编作业)
[2008-03-17 17:36] 检测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...
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...
阅读全文 |
评论次数(1) |
浏览次数(780) |
所属类型(汇编作业)
[2008-03-12 17:16] 实验4
编程,向内存0:200--0:23F 依次传送数据0--63(3FH)
mov ax,0020h
mov ds,ax
mov bx,0
mov cx,64
s:
mov [bx],bl
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end start
(3)
assume cs:code
code segment
mov ax,cs
mov ds,ax
mov ax,0020h
mov es,ax
mo...
mov ax,0020h
mov ds,ax
mov bx,0
mov cx,64
s:
mov [bx],bl
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end start
(3)
assume cs:code
code segment
mov ax,cs
mov ds,ax
mov ax,0020h
mov es,ax
mo...
阅读全文 |
评论次数(1) |
浏览次数(643) |
所属类型(汇编作业)
[2008-03-10 17:07] 实验3
(1)进入c:\masm>后
edit t1.asm 保存
masm t1; 编译
link t1; 生成可执行文件 t1.exe
(2)
assume cs:codesg
codesg segment
mov ax,2000h ax=2000h,bx=0000h,cx=0016h,dx=0000h,ds=0c4dh,es=0c4dh,ss=0c5dh,cs=0c5dh,ip=0000h,bp=0,si=0,di=0
mov ss,ax
mov sp,0 ss=2000h,ip=0008h 其他不变
add sp,4 sp=004h,ip...
edit t1.asm 保存
masm t1; 编译
link t1; 生成可执行文件 t1.exe
(2)
assume cs:codesg
codesg segment
mov ax,2000h ax=2000h,bx=0000h,cx=0016h,dx=0000h,ds=0c4dh,es=0c4dh,ss=0c5dh,cs=0c5dh,ip=0000h,bp=0,si=0,di=0
mov ss,ax
mov sp,0 ss=2000h,ip=0008h 其他不变
add sp,4 sp=004h,ip...
阅读全文 |
评论次数(1) |
浏览次数(706) |
所属类型(汇编作业)
[2008-03-06 17:27] 实验2
(1)
mov ax,ffff
mov ds,ax
mov ax,2200
mov ss,ax
mov sp,0100
mov ax,[0] ;ax=5BEAH
add ax,[2] ;ax=5CCAH
mov bx,[4] ;bx=30F0H
add bx,[6] ;bx=6027H
push ax ;SP=00FEH,修改的内存单元的地址是2200:00FE 内容为 5CCAH
push bx ;SP=00FCH,修改的内存单元的地址是2200:00FC 内容为 6027H
pop ax ;sp=00FEH;ax=60...
mov ax,ffff
mov ds,ax
mov ax,2200
mov ss,ax
mov sp,0100
mov ax,[0] ;ax=5BEAH
add ax,[2] ;ax=5CCAH
mov bx,[4] ;bx=30F0H
add bx,[6] ;bx=6027H
push ax ;SP=00FEH,修改的内存单元的地址是2200:00FE 内容为 5CCAH
push bx ;SP=00FCH,修改的内存单元的地址是2200:00FC 内容为 6027H
pop ax ;sp=00FEH;ax=60...
阅读全文 |
评论次数(2) |
浏览次数(617) |
所属类型(汇编作业)
[2007-12-24 15:41] 检测点3.2
补全下面的程序,使其可以将10000H-1000FH中的8个字,逆序拷贝到20000H-2000FH中。
mov ax,1000H mov ax,2000H
mov ds,ax mov ds,ax
mov ax,2000H mov ax,1000h
mov ss,ax mov ss,ax
mov sp,0010H mov sp,0000...
mov ax,1000H mov ax,2000H
mov ds,ax mov ds,ax
mov ax,2000H mov ax,1000h
mov ss,ax mov ss,ax
mov sp,0010H mov sp,0000...
阅读全文 |
评论次数(4) |
浏览次数(592) |
所属类型(汇编作业)
[2007-12-24 15:40] 检测点3.1
(1)下面的程序执行前,AX=0,BX=0,写出每条汇编指令执行完后相关寄存器中的值。
mov ax,1
mov ds,ax
mov ax,[0000] AX= 2662H
mov bx,[0001] BX= E626H
mov ax,bx AX= E626H
mov ax,[0000] AX= 2662H
mov bx,[0002] BX= D6E6H
add ax,bx AX= FD48H
...
mov ax,1
mov ds,ax
mov ax,[0000] AX= 2662H
mov bx,[0001] BX= E626H
mov ax,bx AX= E626H
mov ax,[0000] AX= 2662H
mov bx,[0002] BX= D6E6H
add ax,bx AX= FD48H
...
阅读全文 |
评论次数(5) |
浏览次数(816) |
所属类型(汇编作业)
[2007-12-04 08:14] 检测点2.3
下面的3条指令执行后,CPU几次修改IP,都是在什么时候?最后IP中的值是多少?
mov ax,bx
sub ax,ax
jmp ax
若CS=2000H,IP=0010H时,读取第一条指令mov ax,bx,读入后IP=IP+2=0012H;
指令执行后,CS不变,IP=0012H,则读取第二条指令sub ax,ax ,读入后IP=IP+2=0014H;
指令执行后,CS不变,IP=0014H,则读取第三条指令 jmp ax ,读入后IP=IP+2=0016H;
执行后,CS不变,IP=0000H,CPU从内存中读取指令……
在整个过程中,CPU...
mov ax,bx
sub ax,ax
jmp ax
若CS=2000H,IP=0010H时,读取第一条指令mov ax,bx,读入后IP=IP+2=0012H;
指令执行后,CS不变,IP=0012H,则读取第二条指令sub ax,ax ,读入后IP=IP+2=0014H;
指令执行后,CS不变,IP=0014H,则读取第三条指令 jmp ax ,读入后IP=IP+2=0016H;
执行后,CS不变,IP=0000H,CPU从内存中读取指令……
在整个过程中,CPU...
阅读全文 |
评论次数(3) |
浏览次数(330) |
所属类型(汇编作业)