計組上機實驗 彙編(一)

2021-10-01 04:18:33 字數 4772 閱讀 5059

四、例子

四、實驗一

五、實驗二

編譯工具

windows32位下

提取碼:

vb3d
mystack segment para'stack'

;content

mystack ends

data segment

;content:data define

data ends

code segment

assume ds:data,ss:mystack,cs:code

start:

;content:your codes

code ends

end start

呼叫dos系統功能指令:int 21h

由ah中內容(mov ah,xxh)決定執行哪種功能:

# 確定ds

mov ax,data

mov ds,ax

# 確定dx,用lea或者mov offset

lea dx,number

mov ah,

09hint 21h

name是保留字,使用這個會報錯symbol not defined:name

code segment中,格式是***:

mystack segment para'stack'

mystack ends

data segment

data ends

code segment

assume ds:data,ss:mystack,cs:code

start:

mov ah,

02h mov dl,

'a' int 21h

mov ah,

4ch int 21h

code ends

end start

將指定資料區的字串資料以ascii碼形式顯示在螢幕上,並通過dos功能呼叫完成必要提示資訊的顯示。

在螢幕上顯示自己的學號姓名資訊。

迴圈從鍵盤讀入字元並回顯在螢幕上,然後顯示出對應字元的ascii碼,直到輸入」q」或「q」時結束。

自主設計輸入顯示資訊,完成程式設計與除錯,演示實驗結果。

mystack segment para'stack'

db 100

dup(?)

mystack ends

data segment

mynumber db '17130110084$'

;姓名 myname db 'zhangxiaomo$'

;學號data ends

code segment

assume ds:data,ss:mystack,cs:code

start:

;顯示mynumber

mov ax,data

mov ds,ax

lea dx,mynumber

mov ah,

09h

int 21h

;顯示myname

mov bx,data

mov ds,bx

lea dx,myname

mov ah,

09h int 21h

mov ah,

4ch int 21h

code ends

end start

stack segment

stack ends

data segment

data ends

code segment

assume cs:code,ds:data

start:

; 確定ds和dx

mov bx,

1000h

mov ds, bx

mov dx,

0000h

loop:

; 讀取字串

mov ah,

0ah mov di,

0h mov bl,

02h mov [di]

, bl

int 21h

; 將字元讀出到al中

add di,

02h mov al,

[di]

; 輸入q的情況

cmp al,

'q'; 結果為0,即相等時,調到next

jz next

cmp al,

'q' jz next

; 讀取高4位,&

11110000

and al,

0f0h

mov cl,

4 shr al, cl

; 是否是a以上的數

cmp al,

0ah ; 結果低於,跳到c2

jb c2

; 不低於,加7h,再到c2

add al,

07h

c2: add al,

30h

mov bl,al

mov al,

[di]

; 讀取低4位,&

00001111

and al,

0fh cmp al,

0ah jb c3

add al,

07hc3:

add al,

30h mov di,

0h mov [di]

,bl inc di

mov [di]

,al inc di

mov bl,

48h mov [di]

,bl inc di

mov bl,

24h mov [di]

, bl

; 顯示字串

mov ah,

09h int 21h

clcjmp loop

; 退出

next:

mov ah,

4ch int 21h

code ends

end start

assume cs:code

data segment

est db "error"

,0ah,

0dh,

'$'data ends

stack segment

stk db 64

dup(0)

stack ends

code segment

start:

mov ax,stack

mov ss,ax

mov sp,offset stk

mov ax,data

mov ds,ax

rf: mov cx,

5 mov ax,

0 mov dx,

0 mov si,

0 mov di,

0rr:

mov ah,

01h int

21h cmp al,

0dh je rend

cmp al,

'q' je qt

cmp al,

'q' je qt

cmp al,

'0' jl err

cmp al,

'9' jg err

jmp cnt

err:

call perr

cnt:

sub al,

'0' mov bh,

0 mov bl,al

mov ax,di

push bx

mov bx,

10 mul bx

pop bx

add ax,bx

adc dx,

0 mov si,dx

mov di,ax

loop rr

rend:

call newline

mov bx,si

call itb

mov bx,di

call itb

call newline

jmp rf

qt: mov ax,

4c00h

int21hitb:

mov cx,

16rs:

mov ax,bx

and ax,

01h mov dl,al

add dl,

'0' push dx

shr bx,

1 loop rs

mov cx,

16r:

pop dx

mov ah,

02h int

21h loop r

retnewline:

mov ah,

02h mov dl,

0dh int

21h mov dl,

0ah int

21h ret

perr:

mov dx,offset est

mov ah,

09h int

21h jmp rf

retcode 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...

彙編 上機實驗二

實驗任務 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...

計組實驗 時序系統

實驗四 時序系統 一 實驗目的 掌握計算機實驗中時序系統的設計方法。設計乙個基本時序系統,該系統具有4個節拍電平及四相工作脈衝,其時序關係參閱下圖中的m0 m3,t0 t3。二 實驗方案 三 實驗要求 開關資料為移位器預置0001。選用適當方案,設計出實驗線路圖。設計試驗步驟。利用指示燈觀察實驗現象...