實驗任務:
1. 實現迴圈結構程式設計:陣列累加求和以及排序程式設計;
data segment
n dw 5
sum dw ?
data ends
code segment
main proc far
assume cs:code,ds:data
start: push ds
mov ax,0
push ax
mov ax,data
mov ds,ax
mov ax,0
mov bx,0
mov cx,0
loop1:
inc bx
add ax,bx
inc cx
cmp ax,100
jbe loop1
mov n,cx
mov sum,ax
retmain endp
code ends
end start
結果(這個不確定)
2. 實現子程式結構程式設計:實現數值轉換,鍵盤輸入十進位制數,顯示輸出對應的十六進製制數;
assume cs:code,ss:stack
stack segment
db 16 dup('?')
stack ends
code segment
start:
mov ax,stack
mov ss,ax
mov sp,16
and bx,0
and dx,0
mov cx,5
read: ;讀取
mov ah,01h
int 21h
cmp al,0dh ;判斷是否鍵入回車符
jz do
cmp al,0ah
jz do
mov bl,al,
and bl,0fh ;將輸入的十進位制轉化為二進位制
mov ax,dx ;將轉化後的二進位制數存入ax
mov dx,0ah
mul dx ;結果乘10
add ax,bx
mov dx,ax ;將乘完10的結果繼續儲存在dx暫存器
loop read
do: mov ax,dx
loopdo:
and dx,0
mov bx,10h
div bx ;對結果除10進行壓棧
push dx
mov cx,ax
jcxz showenter
jmp loopdo
showenter:
mov dx,0ah
mov ah,02h
int 21h ;顯示回車換行
mov dx,0dh
int 21h
show:
pop dx
cmp dx,9 ;顯示輸出
jbe abcdef
add dx,7h ;大於9的值要加ascii碼37(abcdef)
abcdef:
add dx,30h
mov ah,02h
int 21h
cmp sp,16
jz exit
loop show
exit:
mov ax,4c00h
int 21h
code ends
end start
結果
3. 遞迴子程式設計:求n!。
data segment
buf dw 10 ;求10!
resu dw ? ;結果儲存在resu中
data ends
code segment
assume cs:code, ds:data
start:
mov ax, data
mov ds, ax
mov ax, buf
call fact
mov resu, dx
mov ah, 4ch
int 21h
fact proc near
push ax
cmp ax, 0
ja next1
mov dx, 1
jmp next2
next1:
push ax
dec ax
call fact
pop ax
mul dl
mov dx, ax
next2:
pop ax
retfact endp
code ends
end start
結果
彙編 上機實驗一
一 實驗任務 1.實現人機對話程式設計 給出人機對話的具體程式要求 data segment pars db 100,100 dup mesg db what is your name?data ends stack segment para stack stack db 100 dup stack...
彙編上機操作
用文字編輯程式寫程式,形成.asm檔案進行彙編,形成.obj檔案,再用連線程式對.obj檔案進行連線,形成.exe檔案。需要檔案 編輯程式 edit.com 匯程式設計序 masm.exe 連線程式 link.exe 除錯程式 debug.exe 常用dos命令 盤 c e 選擇碟符 cd 選擇目錄...
彙編上機涉及檔案
asm是組合語言源程式的副檔名,組合語言 assembly language 是面向機器的程式設計bai語言。組合語言是一種功能很強的程式語言,是利用計算機所有硬體特性並能直接控制硬體的語言。開啟asm檔案有兩種方法即筆記本和masmedit軟體。在組合語言中,用助記符 memoni 代替操作碼,用...