彙編加法程式

時間 2021-08-14 22:59:26

1樓:許滄海

編寫將鍵盤輸入的三個數值,86h,34h,22h,利用三個數進行運算,

s=86h*34h-22h,螢幕上顯示運算結果。

1)鍵盤輸入ascii字串

2)ascii轉換二進位制

3)二進位制進行運算

4)二進位制運算結果轉換成ascii

5)ascii螢幕輸出

2樓:

;經驗證,下式結果正確

;s=86h*34h-22h=1b38h-22h=1b16hcode segment

assume cs:code,ds:codeorg 100h ;com格式

start:

push cs

pop ds

mov ax,0e53h ;顯示's'

int 10h

mov al,'=';顯示'='

int 10h

call @in

mov dl,al

mov bl,2ah;"*"

call show ;顯示'h*'

call @in

mov dh,al

mov bl,2dh ;"-"

call show ;顯示'h-'

call @in

mov ah,0

mov bp,ax

mov bl,3dh ;"="

call show ;顯示'h='

mov ah,0

mov al,dl ;al←86h

mov bl,dh ;bl←34h

mul bl ;86h*34h

;未考慮不夠減的情況

sub ax,bp ;ax←ax-22h

mov cx,4

mov dx,ax

next:

push cx

mov cl,4

rol dx,cl

mov ax,dx

and al,0fh ;取出一位

or al,30h ;二進位制轉換為asciicmp al,'9';比9小直接顯示

jb t2

add al,7 ;是a`f的,加7校正

t2:mov ah,0eh ;顯示asciiint 10h

pop cx

loop next ;下一位

mov ax,0e48h ;'h'

int 10h

mov ah,0

int 16h ;暫停

mov ah,4ch

int 21h ;結束

@in:;可輸入兩位十六進製制數

xor bx,bx ;bx←0

mov cx,4

@1:call input

mov bl,al

shl bl,cl ;bl←bl*10h

call input

add al,bl ;al←兩位十六進製制數retinput: ;僅允許輸入並顯示0-9和a-fmov ah,0

int 16h ;無回顯鍵盤輸入

cmp al,'0';十六進製制數 0-f

jb input ;為有效輸入

cmp al,'9'

jbe q1

and al,0dfh ;大小寫,同轉為大寫cmp al,'a';"a(a)"

jb input

cmp al,'f';"f(f)"

ja input

q1:mov ah,0eh

int 10h ;顯示有效輸入

sub al,30h ;0-9之間,ascii轉換為二進位制cmp al,9

jbe q3

sub al,7

q3:ret

show:

mov ax,0e48h ;"h"

int 10h

mov al,bl

int 10h

retcode ends

end start

3樓:匿名使用者

; 字元轉二進位制,dx=結果

input:

sub cx, cx

mov dx, cx

lp1:

mov ah, 1

int 21h

cmp al, 13

je ok

cmp al, '0'

jl error

cmp al, '9'

jg error

sub al, '0'

mov ah, 0

xchg ax, dx

mul cl

add dx, ax

mov cx, 10

jmp lp1

ok:ret

error:

mov dx,-1

ret;二進位制轉字元,輸出,ax=要輸出的值output:

mov cl, 10

lp2:

cmp ax, 0

je ok2

div cl

push ax

call lp2

pop ax

mov dl, al

or dl, 30h

mov ah, 2

int 21h

ok2:ret

求匯程式設計序,編寫組合語言,匯程式設計序基礎語法

什麼都沒有,怎麼寫?匯程式設計序基礎語法 注意 立即數書寫必須以數字開頭,若十六進製制數第一位為字母,可在前面新增0。變數一旦被定義,就具有以下三個屬性 表示該變數存放在哪個邏輯段中,變數的段基值可以用seg運算子獲取。表示變數所在位置與段起始點之間的位元組數,變數的偏移量可以用offset運算子獲...

匯程式設計序學習,怎麼學習彙編

1 王爽的 組合語言 第2版 2 羅雲彬的 windows環境下32位組合語言程式設計 第2版 3 溫冬蟬,沈美明 清華大學出版社,ibm pc 組合語言程式設計教程 4 美 kip 著,溫玉傑等譯 intel 組合語言程式設計 第四版 設ax 0001h,bx 0001h,則加法指令如下 add ...

彙編 延時子程式,組合語言中延時子程式的問題

daily proc near mov cx,2000h d0 mov ax,0ffffh d1 dec ax jz d1 loop d0 daily endp 延時大概是0.33s 其實延時跟cpu有很大關係,不能用軟體精確計算,可以用8254實現,硬體和軟體功能具有邏輯上的等效性。 用delay...