【1】
assume cs:code
stack segment
dw 8 dup(0)
stack ends
code segment
start:mov ax,stack;0 1 2
mov ss,ax ;3 4 把栈段地址给ss
mov sp,16 ;5 6 7 栈偏移为16
mov ds,ax ;8 9 数据段的段地址和栈段地址相同
mov ax,0 ;a b c
call word ptr ds:[0eh] ;d e f 10 push ip 压栈 为11h 再 jmp word ptrds:[0eh...
- [游客] 兄弟,现在汇编网似乎不能登录了 加油阿 12/28 17:05
- [tom7370] 兄弟,都一个月了。。。 08/16 18:12
- [tom7370] 怎么没动静了? 08/05 17:18
- [tom7370] 自愧不如啊 07/18 17:22
- [tom7370] 你的学习进度比我快多了哩 我用了将近6个月才学完这本书。。。 不像网站上说的2个月。。。。 07/18 17:20
- [mr_crbn] 啊 我佛了 这个 缩进 我在notepad++ 缩进的好好的, 07/14 14:44
- [mr_crbn] 第3题的第五小题 用到了 [bx+32] 我是实际测试过了 可以用的 就用了 其实不用这种方法 07/12 19:25
- [tom7370] 加油! 07/12 12:03
- [tom7370] 你对第二问的理解似乎不对 题目的意思大概是要你写出指令的执行过程 07/06 09:00
- [mr_crbn] 非常感谢你,我理解的确实不对 我以为一个存储器的是有固定的存储单元,笔记已经改正了 06/30 17:45
- [tom7370] 你还真是牛逼,几天就搞完我几个星期搞完的东西。 07/04 22:33
[2019-07-15 18:02] 汇编语言监测点10.5的作业
阅读全文 |
评论次数(0) |
浏览次数(515) |
所属类型(汇编作业)
[2019-07-15 11:56] 汇编语言检测点10.4的作业
mov ax,6
call ax 将ip为5 压栈 jmp ax ax 为6 执行mov bp,sp
inc ax
mov bp,sp 将sp的偏移地址赋值给bp
add ax,[bp] 读取bp的内存单元的数据 也就是刚刚压栈的的数据 5h ax为6h 所以相加为0bh...
call ax 将ip为5 压栈 jmp ax ax 为6 执行mov bp,sp
inc ax
mov bp,sp 将sp的偏移地址赋值给bp
add ax,[bp] 读取bp的内存单元的数据 也就是刚刚压栈的的数据 5h ax为6h 所以相加为0bh...
阅读全文 |
评论次数(0) |
浏览次数(535) |
所属类型(汇编作业)
[2019-07-15 09:34] 汇编语言检测点10.3的作业
mov ax,0
call far ptr s 将cs 和ip 依次按顺序压栈
inc ax
s:pop ax ip先出栈,sp +2 ax的值为8h
add ax,ax 8h+8h = 10h
pop bx bx的内容 =cs的内容 等于1000
add ax,bx 1000h +10h = 1010h...
call far ptr s 将cs 和ip 依次按顺序压栈
inc ax
s:pop ax ip先出栈,sp +2 ax的值为8h
add ax,ax 8h+8h = 10h
pop bx bx的内容 =cs的内容 等于1000
add ax,bx 1000h +10h = 1010h...
阅读全文 |
评论次数(0) |
浏览次数(518) |
所属类型(汇编作业)
[2019-07-15 09:13] 汇编语言检测点10.2的作业
mov ax,0
call s
inc ax
s:pop ax
首先执行指令 mov ax,0 之后ip的地址为3 然后执行完call s之后iP的地址6 因为call指令相当于push ip所以
栈空间里面的值为6 所以ax为0
这个 题目的难点就是cpu的执行顺序 ip的变动是在 程序执行指令之前 读取call s >>变动ip指向下条指令>>执行call s...
call s
inc ax
s:pop ax
首先执行指令 mov ax,0 之后ip的地址为3 然后执行完call s之后iP的地址6 因为call指令相当于push ip所以
栈空间里面的值为6 所以ax为0
这个 题目的难点就是cpu的执行顺序 ip的变动是在 程序执行指令之前 读取call s >>变动ip指向下条指令>>执行call s...
阅读全文 |
评论次数(0) |
浏览次数(542) |
所属类型(汇编作业)
[2019-07-15 08:48] 汇编语言检测点10.1的作业这个检测点还是蛮简单的
assume cs:code
stack segment
db 16 dup (0)
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,16
mov ax,1000h
push ax
mov ax,0
push ax
retf
code ends
end start...
stack segment
db 16 dup (0)
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,16
mov ax,1000h
push ax
mov ax,0
push ax
retf
code ends
end start...
阅读全文 |
评论次数(0) |
浏览次数(556) |
所属类型(汇编作业)
[2019-07-14 22:35] 汇编语言实验九 这个实验我自己 琢磨了4个小时 现在真的头晕眼花的
assume cs:code
data segment
db 'welcome to masm!' ;0~~15
db 2h,24h,71h
data ends
stack segment
dw '0'
stack ends
code segment
start:mov ax,data
mov ds,ax ;初始化data
mov ax,0B800h
mov es,ax ;初始化es
mov ax,stack
mov ss,ax
mov sp,0;初始化栈
mov bp,0;屏幕的偏移 行! 这个决定了字符是否分行显示
...
data segment
db 'welcome to masm!' ;0~~15
db 2h,24h,71h
data ends
stack segment
dw '0'
stack ends
code segment
start:mov ax,data
mov ds,ax ;初始化data
mov ax,0B800h
mov es,ax ;初始化es
mov ax,stack
mov ss,ax
mov sp,0;初始化栈
mov bp,0;屏幕的偏移 行! 这个决定了字符是否分行显示
...
阅读全文 |
评论次数(0) |
浏览次数(536) |
所属类型(汇编作业)
[2019-07-14 17:43] 汇编语言实验八
assume cs:code
code 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 short s1
nop
code ends
end start
执行前:把s2的指令写入到s处 s2的指令为 跳转到s1 那么s的指令和s2...
code 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 short s1
nop
code ends
end start
执行前:把s2的指令写入到s处 s2的指令为 跳转到s1 那么s的指令和s2...
阅读全文 |
评论次数(0) |
浏览次数(517) |
所属类型(汇编作业)
[2019-07-14 15:29] 汇编语言检测点9.3的作业
assume cs:code;目标 利用jcxz指令 找到第一个为0的字节
code segment
start:mov ax,2000h
mov ds,ax
mov bx,0
s:mov cl,ds:[bx] ;先把数据读到cl寄存器里面
mov ch,0 ;初始cx寄存器的高位字节为0
add cx,1
;当我们找到为0的字节的时候 此时的cl 为0 ch为0
;因为此时的cx为0 loop s 之后 cx会减1 再判断cx是否为0
;所以先给ax加上1 减1刚好 为0 跳出循环
inc bx
loop s
ok:dec bx...
code segment
start:mov ax,2000h
mov ds,ax
mov bx,0
s:mov cl,ds:[bx] ;先把数据读到cl寄存器里面
mov ch,0 ;初始cx寄存器的高位字节为0
add cx,1
;当我们找到为0的字节的时候 此时的cl 为0 ch为0
;因为此时的cx为0 loop s 之后 cx会减1 再判断cx是否为0
;所以先给ax加上1 减1刚好 为0 跳出循环
inc bx
loop s
ok:dec bx...
阅读全文 |
评论次数(0) |
浏览次数(266) |
所属类型(汇编作业)
[2019-07-14 14:42] 汇编语言检测点9.2的作业
assume cs:code;目标 利用jcxz指令 找到第一个为0的字节
code segment
start:mov ax,2000h
mov ds,ax
mov bx,0
s:mov cl,ds:[bx] ;先把数据读到cl寄存器里面
mov ch,0 ;初始cx寄存器的高位字节为0
jcxz ok ;当cx中的数据为0的时候 进行跳转到 标号ok处
inc bx ;如果上面的cx不等于0 则 bx 自增
jmp short s ;如果Jcxz没有执行 则跳转到标号 s 处
ok:mov dx,bx ;
mov ax,4c00h
int 21...
code segment
start:mov ax,2000h
mov ds,ax
mov bx,0
s:mov cl,ds:[bx] ;先把数据读到cl寄存器里面
mov ch,0 ;初始cx寄存器的高位字节为0
jcxz ok ;当cx中的数据为0的时候 进行跳转到 标号ok处
inc bx ;如果上面的cx不等于0 则 bx 自增
jmp short s ;如果Jcxz没有执行 则跳转到标号 s 处
ok:mov dx,bx ;
mov ax,4c00h
int 21...
阅读全文 |
评论次数(1) |
浏览次数(450) |
所属类型(汇编作业)
[2019-07-14 13:25] 汇编语言检测点9.1的作业
【1】
assume cs:code ;
data segment
dw 0,0
data ends
code segment
start:mov ax,data
mov ds,ax
mov bx,0
jmp word ptr [bx+1];想要指向第一行指令 那吗我们需要
;把bx+1的所指向的值设置为0就行了
mov ax,4c00h
int 21h
code ends
end start ;这是一个无限循环
【2】
assume cs:code
data segment
dd 12345...
assume cs:code ;
data segment
dw 0,0
data ends
code segment
start:mov ax,data
mov ds,ax
mov bx,0
jmp word ptr [bx+1];想要指向第一行指令 那吗我们需要
;把bx+1的所指向的值设置为0就行了
mov ax,4c00h
int 21h
code ends
end start ;这是一个无限循环
【2】
assume cs:code
data segment
dd 12345...
阅读全文 |
评论次数(0) |
浏览次数(269) |
所属类型(汇编作业)