組合語言程式 用A逆時針畫矩形

2022-06-18 04:06:13 字數 2501 閱讀 9055

要求:從螢幕左上方開始逆時針用『a』畫乙個矩形。

首先知道螢幕長80字元、寬25字元,用x,y記錄當前位置,然後迴圈控制方向,到達邊界轉變方向即可。這裡做了點擴充套件,由外向內填滿整個螢幕。更多細節的完善和擴充套件請自行實現。

;des 表示方向 1下 2右 3上 四左

delay equ

500org 100h

start:

mov ax,cs

mov ds,ax

mov ss,ax

mov ax,0b800h

mov es,ax

mov

byte[char],'a'

loop: ;大迴圈,裡面有四個小迴圈

mov ax,word[i]

mov bx,

13sub ax,bx

jz end

mov ax,word[i]

mov word[y],ax

dec ax

mov word[x],ax

mov

byte[des],1

inc word[i]

down:

inc word[x]

mov bx,word[x]

mov ax,

26sub ax,word[i]

sub ax,bx

jz d2r

jmp show

d2r:

mov ax,

25sub ax,word[i]

mov word[x],ax

mov

byte[des],2

right:

inc word[y]

mov bx,word[y]

mov ax,

81sub ax,word[i]

sub ax,bx

jz r2u

jmp show

r2u:

mov ax,

80sub ax,word[i]

mov word[y],ax

mov

byte[des],3

up: dec word[x]

mov bx,word[x]

mov ax,-2

add ax,word[i]

sub ax,bx

jz u2l

jmp show

u2l:

mov ax,-1

add ax,word[i]

mov word[x],ax

mov

byte[des],4

left:

dec word[y]

mov bx,word[y]

mov ax,-1

add ax,word[i]

sub ax,bx

jz loop

jmp show

end:

jmp $

show: ;列印

xor ax,ax

mov ax,word[x]

mov bx,

80mul bx

add ax,word[y]

mov bx,

2mul bx

mov bp,ax

mov ah,0fh

mov al,

byte[char

] mov word[es:bp],ax

jmp loop_wait

loop_wait: ;延遲列印

dec word[count]

jnz loop_wait

mov word[count],delay

dec word[dcount]

jnz loop_wait

mov word[count],delay

mov word[dcount],delay

mov al,

1cmp al,

byte

[des]

jz down

mov al,

2cmp al,

byte

[des]

jz right

mov al,

3cmp al,

byte

[des]

jz up

mov al,

4cmp al,

byte

[des]

jz left

datadef:

count dw delay

dcount dw delay

i dw

0;當前層數

x dw

0;座標

y dw

0des db

1;方向初始化為向下

char db '

a'

效果圖如下:

組合語言程式格式

組合語言源程式中的每個語句可以由四項組成,格式如下 name operation operand comment 其中 名字項 name 是指乙個標號或變數。操作項 operation 是乙個操作碼的助記符,它可以是指令 偽指令或巨集指令名。運算元項 operand 由乙個或多個表示式組成,它提供為...

組合語言 子程式

舉例 子程式呼叫指令call 格式為 call 子程式名 call相當於jmp 子程式名 相當於 標號 子程式執行完返回到call下一句的語句執行 在子程式中用ret 返回 子程式名proc屬性 far,near 子程式名 endp 如果主程式是被執行的第乙個程式,屬性應為far 主程式 let0 ...

組合語言程式vs 匯程式設計序

組成原理 這是個常常被人拿來挖坑的地方。組合語言程式就是你用組合語言寫的文字型的程式,我們說用一堆助記符來寫的源 匯程式設計序是彙編階段用來把組合語言翻譯成機器語言指令的程式。二者是不同的概念。比如有些時候問,計算機能夠直接執行的是 a.機器語言程式 b.組合語言程式 c.硬體描述語言程式 組合語言...