assume cs:code
data segment
db 'welcome to masm!',0
data ends
code segment
start: mov dh,8
mov dl,79
mov cl,89h
mov ax,data
mov ds,ax
mov si,0
call show_str
mov ax,4c00h
int 21h
show_str:
push es
push dx
push cx
push ax
push bx
push si
push di
mov ax,0b...


- [crazyman] 通过这几天的学习,深刻感受到了汇编的魅力,栈以及and、or的巧妙使用,简直太好了 !!! = 12/08 15:53
- [crazyman] 对! 12/03 12:36
- [crazyman] 正确。 12/03 12:36
- [crazyman] 正确。 12/03 12:34
- [crazyman] 分析正确。 12/03 12:29
- [crazyman] 程序正确。 12/03 12:26
- [justlikeit_361] 是的. 12/01 17:46
- [justlikeit_361] data segment db 'welcome to masm!' db 颜色 12/01 15:07
- [justlikeit_361] 恩,写很精简. 12/01 14:21
- [justlikeit_361] 是的,解释的也很清楚 12/01 14:02
[2008-12-02 17:50] 第10章 实验10.1
阅读全文 |
评论次数(1) |
浏览次数(629) |
所属类型(汇编作业)
[2008-12-02 17:45] 第10章 检测点5
1. ax=3
程序将ss和ds设为同一个段地址,call之前先将下一条指令的偏移地址压入栈中,此时sp=0eh,然后跳转到(ds:[0eh]=ss:sp)继续执行。
2. ax=1 bx=0
call后 (ss:[0eh])=(cs),(ss:[0ch])=nop指令的偏移量.
nop和s之间的距离为1...
程序将ss和ds设为同一个段地址,call之前先将下一条指令的偏移地址压入栈中,此时sp=0eh,然后跳转到(ds:[0eh]=ss:sp)继续执行。
2. ax=1 bx=0
call后 (ss:[0eh])=(cs),(ss:[0ch])=nop指令的偏移量.
nop和s之间的距离为1...
阅读全文 |
评论次数(1) |
浏览次数(679) |
所属类型(汇编作业)
[2008-12-02 17:31] 第10章 检测点4
0bh
call ax 将sp-2,ip(5)压入栈中,然后跳转到mov bp,sp
add ax,[bp]这里需要注意的是bp默认的段寄存器是ss
ss:sp=5,...
call ax 将sp-2,ip(5)压入栈中,然后跳转到mov bp,sp
add ax,[bp]这里需要注意的是bp默认的段寄存器是ss
ss:sp=5,...
阅读全文 |
评论次数(1) |
浏览次数(620) |
所属类型(汇编作业)
[2008-12-02 17:15] 第10章 检测点3
ax=1010H
call far ptr s为段间转移。调用时依次将cs(1000H)、ip(8)压入栈中....
call far ptr s为段间转移。调用时依次将cs(1000H)、ip(8)压入栈中....
阅读全文 |
评论次数(1) |
浏览次数(565) |
所属类型(汇编作业)
[2008-12-02 17:10] 第10章 检测点2
6
call s执行时将ip压入栈中,s:pop ax,这句将栈中变量送给ax=6...
call s执行时将ip压入栈中,s:pop ax,这句将栈中变量送给ax=6...
阅读全文 |
评论次数(1) |
浏览次数(634) |
所属类型(汇编作业)
[2008-12-01 14:48] 第10章 检测点1
1000h
0h
retf 先从栈中取ip,然后取cs。
栈为后进先出型,所以要先把段地址压入栈中,再压偏移地址...
0h
retf 先从栈中取ip,然后取cs。
栈为后进先出型,所以要先把段地址压入栈中,再压偏移地址...
阅读全文 |
评论次数(1) |
浏览次数(596) |
所属类型(汇编作业)
[2008-12-01 14:34] 第9章 实验9
assume cs:code
data segment
db 'welcome to masm!'
data ends
code segment
start: mov ax,data
mov ds,ax
mov ax,0b800h
mov es,ax
mov si,0
mov di,0
mov cx,16
s: mov al,[si]
mov es:[di].64,al ;绿色
mov byte ptr es:[di+1].64,02h
mov es:[di+160].64,al
mov byte ptr es:[di+160...
data segment
db 'welcome to masm!'
data ends
code segment
start: mov ax,data
mov ds,ax
mov ax,0b800h
mov es,ax
mov si,0
mov di,0
mov cx,16
s: mov al,[si]
mov es:[di].64,al ;绿色
mov byte ptr es:[di+1].64,02h
mov es:[di+160].64,al
mov byte ptr es:[di+160...
阅读全文 |
评论次数(1) |
浏览次数(629) |
所属类型(汇编作业)
[2008-12-01 12:57] 第9章 9.3作业
inc cx
loop指令的执行分2步:
1. (cx)=(cx)-1 2.如果cx=0 ,执行下一条指令 ;如果不为0则继续执行循环体。...
loop指令的执行分2步:
1. (cx)=(cx)-1 2.如果cx=0 ,执行下一条指令 ;如果不为0则继续执行循环体。...
阅读全文 |
评论次数(1) |
浏览次数(409) |
所属类型(汇编作业)
[2008-12-01 11:08] 第9章 9.2作业
mov ch,0
mov cl,[bx]
jcxz ok
inc bx...
mov cl,[bx]
jcxz ok
inc bx...
阅读全文 |
评论次数(1) |
浏览次数(428) |
所属类型(汇编作业)
[2008-12-01 11:04] 第9章 9.1作业
1. db 0,0,0
程序的第一条指令处ip=0。word ptr表明操作数是16位
2. bx ,cs
jmp dword ptr ds:[0] 操作数为双字,占4个字节,进行的是段间跳转。高地址处放目的段地址,低地址处放目的偏移地址。
3.cs=0006H ip=00BEH...
程序的第一条指令处ip=0。word ptr表明操作数是16位
2. bx ,cs
jmp dword ptr ds:[0] 操作数为双字,占4个字节,进行的是段间跳转。高地址处放目的段地址,低地址处放目的偏移地址。
3.cs=0006H ip=00BEH...
阅读全文 |
评论次数(1) |
浏览次数(673) |
所属类型(汇编作业)
『 查看更多文章 』