組合語言
實驗報告
東北大學秦皇島分校
計算機與通訊工程學院
【實驗編號】 6
【實驗名稱】 實踐課程中的程式
【實驗目的】
加強對彙編程式設計的掌握,熟練不同的定址方法
【實驗內容】
程式設計,完成問題7.9中的程式
assume cs:codesg,ss:stacksg,ds:datasg
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
datasg segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
datasg ends
codesg segment
start:
mov ax,stacksg
mov ss,ax
mov sp,16
mov ax,datasg
mov ds,ax
mov bx,3
mov cx,4
s0:push cx
mov si,0
mov cx,4
s:mov al,[bx+si]
and al,11011111b
mov [bx+si],al
inc si
loop s
add bx,16
pop cx
loop s0
mov ax,4c00h
int 21h
codesg ends
end start
【實驗編號】 7
【實驗名稱】 定址方式在結構化資料訪問中的應用
【實驗目的】
加強對彙編程式設計的掌握,熟練不同的定址方法
【實驗內容】
程式設計,將data段中的資料按如下格式寫入到table段中,並計算21年中的人均收入(取整),結果也按照下面的格式儲存在table段中。
assume cs:code,ds:data,ss:table
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
db '1993','1994','1995'
dd 16,22,382,1356,2390,8000,16000,24486,500665,97479,140417,197514
dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000
dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
dw 11542,14430,15257,17800
data ends
table segment
db 21 dup ('year summ ne ?? ')
table ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,table
mov ss,ax
mov bx,0
mov bp,0
mov si,0
mov cx,21
s:mov ax,[bx]
mov [bp],ax
mov ax,[bx+2]
mov [bp+2],ax
mov ax,[bx+84]
mov [bp+5],ax
mov dx,[bx+86]
mov [bp+7],dx
div word ptr [si+168]
mov [bp+13],ax
mov ax,[si+168]
mov [bp+10],ax
add si,2
add bx,4
add bp,16
loop s
mov ax,4c00h
int 21h
code ends
end start
【實驗編號】 8
【實驗名稱】 分析乙個奇怪的程式
【實驗目的】
加強對彙編程式設計的掌握,熟練不同的定址方法
【實驗內容】
分析下面的程式,在執行前思考:這個程式可以正確返回嗎?
執行後再思考:為什麼是這種結果?
assume cs:codesg
codesg segment
mov ax,4c00h
int 21h
start:
mov ax,0
s:nop
nopmov 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
nopcodesg ends
end start
程式能正常執行完畢,因為在start後的第7,8行將s2處的**寫入了s處的兩個空位元組單元,而內容為ebf0,意思是從將當前ip的值賦成(ip)-f0(八位位移,補碼形式),賦值後ip指向了mov ax,4c00h,接著就結束程式了
【實驗編號】 9
【實驗名稱】 根據材料程式設計
【實驗目的】
熟悉視訊記憶體輸入字元的相關方法
【實驗內容】
程式設計:在螢幕中間分別顯示綠色、綠底紅色、白底藍色的字串』wel***e to ma**!』
assume cs:code,ds:data
data segment
db 'wel***e to ma**!'
data ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,0b800h
mov es,ax
mov bx,0
mov si,0
mov di,12*160+32*2
mov cx,16
s:mov al,[bx]
mov ah,00000010b
mov es:[si+di],ax
mov ah,00100100b
mov es:[si+di+0a0h],ax
mov ah,01110001b
mov es:[si+di+140h],ax
inc bx
add si,2
loop s
mov ax,4c00h
int 21h
code ends
end start
【實驗編號】 10
【實驗名稱】 編寫子程式
【實驗目的】
熟悉call和ret的聯合應用
【實驗內容】
東北大學秦皇島分校編譯原理實驗報告
編譯原理 實驗報告 東北大學秦皇島分校 實驗1詞法分析程式的設計與實現 實驗目的和要求 設計 編制 除錯乙個具體的詞法分析程式,加深對詞法分析原理的理解。實驗內容 通過對pl 0詞法分析程式 getsym 的分析,並在此基礎上按照附錄a中給出的pl 0語言的語法描述,編寫乙個pl 0語言的詞法分析程...
工企報告東北大學秦皇島分校
工業企業供電課程報告 供電電網的電能損耗及其降損技術的分析 學生姓名 班級學號 5102 任課教師 劉雲靜 提交日期 2012.11.成績一 研究背景 現狀和意義 一 研究背景 在上海世博會的大舞台上,光影幻動 流光溢彩的國家電網館,像乙個透明晶體 魔盒 向世人陳述的不僅是一家電力企業 創新,點亮夢...
東北大學軟體學院彙編實驗報告
附錄二 組合語言程式設計 實驗報告 軟體學院 一 實驗目的與意義 了解和掌握邏輯指令 比較指令 無條件 有條件轉移類指令的功能和作用,以及此類指令的使用方法。二 實驗環境 作業系統 windows7 除錯軟體名稱及版本號 microsoft visual studio2008 三 實驗的預習內容 預...