汇编语言 第二次作业.docx
- 文档编号:11651835
- 上传时间:2023-03-29
- 格式:DOCX
- 页数:19
- 大小:802.79KB
汇编语言 第二次作业.docx
《汇编语言 第二次作业.docx》由会员分享,可在线阅读,更多相关《汇编语言 第二次作业.docx(19页珍藏版)》请在冰豆网上搜索。
汇编语言第二次作业
汇编语言第二次作业
内容:
课本实验3,4,5
实验3:
实验4:
4-1代码:
codesegment
assumecs:
code
start:
movax,0
movds,ax
movbx,23fh
movcx,3fh
s:
mov[bx],cl
decbx
loops
movax,4c00h
int21h
codeends
endstart
截图:
4-2代码:
codesegment
assumecs:
code
start:
movax,0
movds,ax
movbx,23fh
movcx,3fh
s:
mov[bx],cl
decbx
loops
movax,4c00h
int21h
codeends
endstart
截图:
4-3代码:
assumecs:
code
codesegment
movax,cs;
movds,ax
movax,0020h
moves,ax
movbx,0
movcx,10h;
s:
moval,[bx]
moves:
[bx],al
incbx
loops
movax,4c00h
int21h
codeends
end
截图:
实验5:
5-1代码:
assumecs:
code,ds:
data,ss:
stack
datasegment
dw0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
dataends
stacksegment
dw0,0,0,0,0,0,0,0
stackends
codesegment
start:
movax,stack
movss,ax
movsp,16
movax,data
movds,ax
pushds:
[0]
pushds:
[2]
popds:
[2]
popds:
[0]
movax,4c00h
int21h
codeends
endstart
截图:
(1)CPU执行程序,程序返回前,data段中的数据不变。
(2)CPU执行程序,程序返回前,cs=076CH、ss=076BH、ds=076AH.
(3)设程序加载后,code段的段地址为X,则data段的段地址为X-2,stack段的段地址为X-1。
5-2代码
assumecs:
code,ds:
data,ss:
stack
datasegment
dw0123H,0456H
dataends
stacksegment
dw0,0
stackends
codesegment
start:
movax,stack
movss,ax
movsp,16
movax,data
movds,ax
pushds:
[0]
pushds:
[2]
popds:
[2]
popds:
[0]
movax,4c00h
int21h
codeends
endstart
截图:
(1)CPU执行程序,程序返回前,data段中的数据不变。
(2)CPU执行程序,程序返回前,cs=076CH、ss=076BH、ds=076AH.
(3)设程序加载后,code段的段地址为X,则data段的段地址为X-2,stack段的段地址为X-1。
(4)对于如下定义的段:
namesegment
…
nameends
如果段中的数据占N个字节,则程序加载后,这段实际占有的空间为(N/16+1)*16。
5-3代码:
assumecs:
code,ds:
data,ss:
stack
codesegment
start:
movax,stack
movss,ax
movsp,16
movax,data
movds,ax
pushds:
[0]
pushds:
[2]
popds:
[2]
popds:
[0]
movax,4c00h
int21h
codeends
datasegment
dw0123H,0456H
dataends
stacksegment
dw0,0
stackends
endstart
截图:
(1)CPU执行程序,程序返回前,data段中的数据不变。
(2)CPU执行程序,程序返回前,cs=076CH、ss=076BH、ds=076AH.
(3)设程序加载后,code段的段地址为X,则data段的段地址为X+3,stack段的段地址为X+4。
(4)如果将
(1)、
(2)、(3)题中的最后一条伪指令“endstart”改为“end”(也就是说不指明程序的入口),则那个程序仍然可以正确执行?
请说明原因。
解:
程序都可以正确执行,因为去掉start后,由于没有的标志,系统会将从code段的起始位置当作程序代码的开始处,然后一直执行下去,而这三个程序在start前没有其他的内容,去掉start也就不影响期功能了。
5-5代码:
assumecs:
code
asegment
db1,2,3,4,5,6,7,8
aends
bsegment
db1,2,3,4,5,6,7,8
bends
csegment
db0,0,0,0,0,0,0,0
cends
codesegment
start:
movax,a
movds,ax
movbx,0
movcx,8
s:
moval,ds:
[bx]
addal,ds:
[bx+16]
movds:
[bx+32],al
incbx
loops
movax,4c00h
int21h
codeends
endstart
截图:
5-6代码:
assumecs:
code
asegment
dw1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh
aends
bsegment
dw0,0,0,0,0,0,0,0
bends
codesegment
start:
movax,a
movds,ax
movbx,0
movax,b
movss,ax
movsp,16
movcx,8
s:
push[bx]
addbx,2
loops
movax,4c00h
int21h
codeends
endstart
截图:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 第二次作业 第二次 作业