組合語言學習筆記 三個嘗試

2021-10-24 13:32:01 字數 3685 閱讀 8845

;program:  兩個數的相加

;author: 龍文漢

;date: 20.10.7

.386

.model flat

exitprocess proto near32 stdcall, dwexitcode:dword

include io.h

cr equ 0dh

lf equ 0ah

.stack 4096

.data

number1 dword ?

number2 dword ?

prompt1 byte "enter first number: ",0

prompt2 byte "enter second number: ",0

string byte 40 dup (?)

label1 byte cr,lf,"the sum is"

sum byte 11 dup (?)

byte cr,lf,0

.code

_start:

output prompt1

input string ,40

atod string

mov number1,eax

output prompt2

input string ,40

atod string

mov number2,eax

mov eax,number1

add eax,number2

dtoa sum,eax

output label1

invoke exitprocess,0

public _start

end

寫乙個完整的8086組合語言程式,滿足一下要求:

a. 從鍵盤輸入自己的姓名,顯示輸出「hello,姓名」,其中「姓名」為自己輸入的姓名。

;program:  輸入自己的名字

;author: 龍文漢

;date: 20.10.7

.386

.model flat

exitprocess proto near32 stdcall, dwexitcode:dword

include io.h ; header file

for input/output

cr equ 0dh ; carriage return character

lf equ 0ah ; line feed

.stack 4096 ; reserve 4096-byte stack

.data ; reserve storage for data

name1 dword 10 dup (?)

prompt byte "enter your name:"

string byte 40 dup (?)

prompt1 byte "hello,"

.code ; start of main program code

_start:

output prompt

input name1,10

output prompt1

output name1

invoke exitprocess, 0 ;

exit with return code 0

public _start ;

make entry point public

end ; end of source code

寫乙個完整的8086組合語言程式,滿足一下要求:

a. 資料段申請乙個儲存資料的字長資料(乙個長度為word的變數),該資料儲存的值20。

b. 資料段申請乙個儲存資料的雙字字長資料(乙個長度為dword的變數),該資料的值從鍵盤輸入。

c. 顯示上述兩個資料在螢幕上。

;program:  實驗1,3

;author: 龍文漢

;date: 20.10.7

.386

.model flat

exitprocess proto near32 stdcall, dwexitcode:dword

include io.h ; header file

for input/output

cr equ 0dh ; carriage return character

lf equ 0ah ; line feed

.stack 4096 ; reserve 4096-byte stack

.data ; reserve storage for data

number1 word 20

number2 dword 20 dup (?)

prompt1 byte "enter the numb2:"

byte cr,lf,0

string byte 40 dup (?)

string2 word 20 dup (?)

byte cr,lf,0

prompt2 byte "第乙個數"

byte cr,lf,0

prompt3 byte cr,lf,"第二個數"

byte cr,lf,0

.code ; start of main program code

_start:

output prompt1

input string,40

atod string

mov number2,eax

itoa string2,number1

output prompt2

output string2

mov eax,number2

dtoa number2,eax

output prompt3

output number2

invoke exitprocess, 0 ;

exit with return code 0

public _start ;

make entry point public

end ; end of source code

cr,lf的使用

cr      equ     0dh     ; carriage return character(回車)

lf equ 0ah ; line feed(換行)

prompt3 byte cr,lf,"第二個數"

byte cr,lf,0

先給0dh(回車),0ah(換行)定義兩個賦值名cr,lf,方便操作.

而在之後的操作中,可以直接將其付給變數。特別注意:回車:將游標重新移到本行的開頭,換行:將游標移動到下一行的相同位置。因此,這兩個通常同時使用。

程式整體介紹(第乙個為例子)

組合語言學習筆記 三

ram 允許讀寫,斷電 資料 和 指令 丟失 rom 只允許讀取,斷電 資料 和 指令 不丟失 1 cpu和計算機各個部件之間的關係 通過給各個部件進行編號,例如 0 399記憶體條 401 699顯示卡 2 ram 允許讀寫,斷電 資料 和 指令 丟失 3 rom 只允許讀取,斷電 資料 和 指令...

組合語言學習(三)

這部分是王爽 組合語言 第7 8章重要內容的總結。主要分為四部分 1.用組合語言實現大小寫字母的轉換 and和or指令應用 2.組合語言二重迴圈的寫法 3.資料處理的兩個基本問題 4.實驗七的思路與 實驗七基本上是對之前學習內容的乙個總結應用,比較重要。大小寫字母轉換部分幫助理解ascii碼設計的奇...

組合語言學習(三)

1.順序結構 略 2.分支結構 1 設計乙個分段函式,x 0,y 1 x 0,y 0 x 0,y 1.486 data segment use16 x dw data ends code segment use16 assume cs code,ds data start mov ax,data m...