通过这个程序加深了JMP 标号 指令中保存的是相对位移而不是偏移地址.
assume cs:code
code segment
mov ax,4c00h
int 21h
start:mov ax,0 程序从这里开始
s:nop
nop
mov di,offset s 将S标号偏移地址赋DI
mov si,offset s2 将S2标号偏移地址赋SI
mov ax,cs:[si] 将代码S2处短跳转指令数据赋AX
mov cs:[di],ax 将AX数据赋代码S标号处,没...
- [tinyparticle] 不错,思路清晰 09/29 21:22
- [wsrf] 正确。 09/16 09:22
- [wsrf] 这个用DEBUG查看一下程序所占字节数就可以了,没有必要把每条指令所占字节数都记住,博主的做法是正确 09/16 08:22
- [tinyparticle] 取cx=0(cx取0-ffffh所占字节数是一样的),进debug查看程序总长度。提示:查看书P91 09/11 20:07
- [huibian2009] 呵呵,逻辑错误就是在编译的时候可以通过,但在执行的过程中会发生错误。 09/10 11:39
- [huibian2009] 呵呵,这道题考查的是对栈空时栈顶的设置,可以参考教程上关于栈的相关章节。这道题应该是选第1个。 09/09 08:37
- [911911] 谢谢已改正 09/08 15:51
- [wsrf] (1)说修改的内容的时候应该是从高字节到低字节写起。如内存单元220FE存储的字为5CCA,而不应该 09/08 08:53
- [911911] 改正了, 特意看了看前面章节的举例 才发现举的DEBUG操作时 数据是不加H的 写段程序指令时数据都 09/07 11:26
- [mywiil] debug下默认的就是16进制,所以不用加H,但是源代码中是需要加H的,因为源程序在编译的时候,数据 09/07 09:12
[2010-12-06 16:42] 实验8
阅读全文 |
评论次数(0) |
浏览次数(445) |
所属类型(汇编作业)
[2010-12-06 14:01] 检测点9.3
assume cs:code
code segment
start:mov ax,2000h
mov ds,ax
mov bx,0
s:mov cl,[bx]
mov ch,0
____
inc bx
loop s
ok:dec bx
mov dx,bx
mov ax,4c00h
int 21h
code ends
end start
补全编程,利用LOOP指令,实现在内存2000H段中查找第一个值为0的字节,找到后,将它的偏移地址存储到DX中.
...
mov ch,0
add cx,1
inc bx
......
code segment
start:mov ax,2000h
mov ds,ax
mov bx,0
s:mov cl,[bx]
mov ch,0
____
inc bx
loop s
ok:dec bx
mov dx,bx
mov ax,4c00h
int 21h
code ends
end start
补全编程,利用LOOP指令,实现在内存2000H段中查找第一个值为0的字节,找到后,将它的偏移地址存储到DX中.
...
mov ch,0
add cx,1
inc bx
......
阅读全文 |
评论次数(0) |
浏览次数(473) |
所属类型(汇编作业)
[2010-12-06 10:44] 检测点9.2
assume cs:code
code segment
start:mov ax,2000h
mov ds,ax
mov bx,0
s:____
____
____
____
jmp short s
ok:mov dx,bx
mov ax,4c00h
int 21h
code ends
end start
补全编程,利用JCXZ指令,实现在内存2000H段中查找第一个值为0的字节,找到后,将它的偏移地址存储在DX中.
...
s:mov cx,0
mov cl,[bx]
jcxz ok
inc bx
jmp short s
......
code segment
start:mov ax,2000h
mov ds,ax
mov bx,0
s:____
____
____
____
jmp short s
ok:mov dx,bx
mov ax,4c00h
int 21h
code ends
end start
补全编程,利用JCXZ指令,实现在内存2000H段中查找第一个值为0的字节,找到后,将它的偏移地址存储在DX中.
...
s:mov cx,0
mov cl,[bx]
jcxz ok
inc bx
jmp short s
......
阅读全文 |
评论次数(0) |
浏览次数(515) |
所属类型(汇编作业)
[2010-12-06 09:56] 检测点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]
ocde ends
end start
若要使程序中的JMP指令执行后,CS:IP指向程序的第一条指令,在DATA段中应该定义 db ?,0,0,?,?,?,?,?... ?处可定义任意数据第二,三字节必须为0
2.
assume cs:code
data segment
dd 12345678h
data ends
code se...
assume cs:code
data segment
?
data ends
code segment
start:mov ax,data
mov ds,ax
mov bx,0
jmp word ptr [bx+1]
ocde ends
end start
若要使程序中的JMP指令执行后,CS:IP指向程序的第一条指令,在DATA段中应该定义 db ?,0,0,?,?,?,?,?... ?处可定义任意数据第二,三字节必须为0
2.
assume cs:code
data segment
dd 12345678h
data ends
code se...
阅读全文 |
评论次数(0) |
浏览次数(449) |
所属类型(汇编作业)
[2010-10-19 15:43] 求助管理员
去年自学了段时间,没有坚持下来,现在重新拾起 但检测题前几章的都做过去了 不显示了, 能不能重置一下检测题进度 不想再注册个新帐号了...
阅读全文 |
评论次数(0) |
浏览次数(512) |
所属类型(默认类型)
[2009-09-29 11:47] 实验7
本想用栈和多个循环,结果越考虑越迷糊,先把自己弄了两天的发上来,再学学其他学长的程序设计
assume cs:code,ds:data
data segment
db '197519761977197819791980198119821983198419851986198719881989199019911992199319941995'
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514,345980,590827,803530,1183000,1843000,2759000,3753000,4649...
assume cs:code,ds:data
data segment
db '197519761977197819791980198119821983198419851986198719881989199019911992199319941995'
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514,345980,590827,803530,1183000,1843000,2759000,3753000,4649...
阅读全文 |
评论次数(1) |
浏览次数(644) |
所属类型(汇编作业)
[2009-09-15 11:33] 检测点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
...
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
...
阅读全文 |
评论次数(1) |
浏览次数(625) |
所属类型(汇编作业)
[2009-09-11 17:47] 第五章实验4
(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,0020H
mov ds,ax
mov bx,0
mov cx,64
s:mov [bx],bl
inc bl
loop s
mov ax,4c00H
int 21H
code...
(2)编程,向内存0:200~0:23F依次传送数据0~63(3FH),程序中只能使用9条指令,9条指令中包括"mov ax,4c00H"和"int 21H".
assume cs:code
code segment
mov ax,0020H
mov ds,ax
mov bx,0
mov cx,64
s:mov [bx],bl
inc bl
loop s
mov ax,4c00H
int 21H
code...
阅读全文 |
评论次数(2) |
浏览次数(753) |
所属类型(汇编作业)
[2009-09-10 09:34] 求第四章检测答案
有一题要找出逻辑错误 几个错误倒都能看出来 但哪个是逻辑错误呀
1 assume cs:code
code segment
mov ax,2000H
add ax,ax
mov ax,4c00H
int 21H
code ends
end
这个应该没错吧 连接时就是没有栈段的提示
2 assume cs:code
code segment
mov ax,2000H
add ax,ax
mov ax,4c00H
int 21H ...
1 assume cs:code
code segment
mov ax,2000H
add ax,ax
mov ax,4c00H
int 21H
code ends
end
这个应该没错吧 连接时就是没有栈段的提示
2 assume cs:code
code segment
mov ax,2000H
add ax,ax
mov ax,4c00H
int 21H ...
阅读全文 |
评论次数(1) |
浏览次数(646) |
所属类型(默认类型)
[2009-09-09 08:31] 在线等答案
第三章检测题上次做错了,求答案不想等几个小时了 再者要是自己乱选着答对了也不知道对的原因,请老师给个答题及原因
若将以1000H为段地址的整个段空间当作栈使用,那么寄存器SP的初始值最合理的设置是_____。
1、 0000H
2、 0001H
3、 FFFFH
4、 FFFEH...
若将以1000H为段地址的整个段空间当作栈使用,那么寄存器SP的初始值最合理的设置是_____。
1、 0000H
2、 0001H
3、 FFFFH
4、 FFFEH...
阅读全文 |
评论次数(1) |
浏览次数(690) |
所属类型(默认类型)
『 查看更多文章 』