懂組合語言的進,組合語言高手進

2022-07-06 20:07:35 字數 1400 閱讀 5787

1樓:做而論道

很簡單的程式。

輸入的數字,是acscii碼形式的,要減去30h,才是數字形式的數字。

程式中,兩個輸入數字,全都減去了30h,然後進行了加法,結果存入ral單元。

輸出顯示,要先把數字,變換成ascii碼,僅僅加30h,是不全面的,數字大於9,就要加37h,這些可以去查ascii表,求得證明。

2樓:老子王天霸

dseg segment

ral db ?

dseg ends

cseg segment

assume cs:cseg,ds:dsegstart: mov ax,dsegmov ds,ax

mov ah,01h ;輸入第一個數int 21h

sub ` al,30h ;第一個數的ask2碼轉換位16進位制數mov bl,al ;第一個數存到bl暫存器mov dl,『+』 ;顯示「+」號mov ah,02h

int 21h

mov ah,01h ;輸入第二個數int 21h

sub al,30h

add bl,al ;第一個數加第二個數,結果在bl中

mov ral,bl ;結果存入ral單元cmp bl,09h ;這裡應該是cmp bl,0ah

jb ad30 ;轉換為ask2碼add bl,07h ;如果兩數的和小於『a』加30h,大於等於加37h

ad30: add bl,30h

mov dl,『=』 ;顯示「=」號mov ah,02h

int 21h

mov dl,bl ;顯示結果mov ah,02h

int 21h

mov ah,4ch

int 21h

cseg ends

end start

3樓:

一個數字字元的ascii是數字+30h

如'0'的ascii是30h

還有cmp 那一句 和add bl 07h的意思是,如果大於09h那麼多加07h以便列印出a,b...

4樓:

有點亂,用的全是直接定址,搞不明白

組合語言高手進 5

5樓:匿名使用者

1、在8086彙編中只看到標識的就是有效地址偏移。

2、真實實體地址=段基址×10h+偏移地址 (10h是16進位制,即16(十進位制))

所以= 21200h

組合語言的問題,一個組合語言的問題

jmp byte ptr bx 改正 baijmp word ptr bx byte 需改du為 zhi word才可以 shl word ptr bx 2改正 mov cx,2 shl word ptr bx cx當移位次dao數 1時,專要使用cx寄存屬器 理由抄很簡單,因為8086cpu不支援...

關於組合語言的問題,有關於組合語言的問題

樓主的從 看來的?裡面有些是錯誤的。8086 8088可定址的儲存空間只有1mb。這1mb的空間在邏輯上 注意 是邏輯上,實際上還是一個整體 被分成若干塊,每個塊的大小為64kb 其中,每一個塊中又被分成若干小節,每個小節16b,故而整個記憶體1mb可以被分為64k個小節 注意 不是64k個塊 對比...

組合語言程式設計

一 mov di,0000h 讓ds di指向字串mov cx,n 設定迴圈次數mov al,a 設定掃描的字母cld 設定df為0repne scasb 開始掃描jz found 找到則跳轉mov di,00h 沒找到則讓di指向字串開頭found mov bx,di 讓bx記錄a所在位置hlt ...