实验 5 编写、调试具有多个段的
生活随笔
收集整理的這篇文章主要介紹了
实验 5 编写、调试具有多个段的
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
實(shí)驗(yàn)任務(wù)
(1)
(2)
(3)
(4)
?若將最后一條指令”end start“改為”end“,(3)中的程序仍然可以正常執(zhí)行。
原因:如果不指明程序的入口,程序的cs:ip值沒有被設(shè)置為指向該入口,就會(huì)以程序段的第一條指令為默認(rèn)入口了,然后程序會(huì)在end處結(jié)束,無法運(yùn)行到代碼段。
(5)
①實(shí)驗(yàn)代碼
assume cs:codea 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 c1 segment?? ; 在集成軟件環(huán)境中,請將此處的段名稱由c→改為c1或其它名稱
? db 8 dup(0)
c1 ends???? ; 改的時(shí)候要成對一起修改
code segment
start:
mov ax,c1
mov es,ax
mov bx,0
mov cx,8 s:?
mov ax,a
mov ds,ax
mov dl,[bx]
mov es:[bx],dl
mov ax,b
mov ds,ax
mov dl,[bx]
add es:[bx],dl
inc bx
loop s mov ax,4c00h
int 21h
code ends
end start
②在實(shí)現(xiàn)數(shù)據(jù)相加前,邏輯段c的8個(gè)字節(jié)
?
③ 執(zhí)行完實(shí)現(xiàn)加運(yùn)算的代碼后,邏輯段c的8個(gè)字節(jié)
④驗(yàn)證是否完成正確的數(shù)據(jù)相加
c1中數(shù)據(jù)符合a的數(shù)據(jù)與b的數(shù)據(jù)加和。
(6)
①程序代碼
assume cs:codea segment
? dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh
a ends b segment
? dw 8 dup(0)
b ends code segment
start:
mov ax,a
mov ds,ax
mov ax,b
mov ss,ax
mov cx,8h
mov bx,0
mov sp,10h
s:
push[bx]
add bx,2
loop s
mov ax,4c00h
int 21h
code ends
end start ②查看邏輯段b的8個(gè)字單元信息截圖
?
③執(zhí)行 push操作,然后再次查看邏輯段b的8個(gè)子單元信息?④:對比②和③
經(jīng)驗(yàn)證,已成功實(shí)現(xiàn)逆序存儲(chǔ)。 總結(jié)與體會(huì) 通過本次實(shí)驗(yàn),我掌握了如何來編寫、調(diào)試具有多個(gè)段的一個(gè)程序, 具有多個(gè)段的程序相對于僅具有一個(gè)段的程序而言,能把數(shù)據(jù),代碼和棧段分開存儲(chǔ),不僅提高了程序整體的存儲(chǔ)容量,還使程序顯得井然有條,通過對多個(gè)段的定義,使我們對數(shù)據(jù)的操作更方便清晰了。? 大致清楚了為具有多個(gè)段的一個(gè)程序分配儲(chǔ)存空間的方式,以16個(gè)字節(jié)為倍數(shù),將其連續(xù)地分配在一個(gè)儲(chǔ)存空間中。轉(zhuǎn)載于:https://www.cnblogs.com/xihongqing/p/10017194.html
總結(jié)
以上是生活随笔為你收集整理的实验 5 编写、调试具有多个段的的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Microsoft BizTalk ES
- 下一篇: 软件研发成本估算过程之估算软件规模概述