1樓:匿名使用者
code segment
assume cs:code
org 100h
start:
jmp bbb
lfcr db 13,10,'$'
bbb:
push cs
pop ds
call inputnum
mov ah,9
lea dx,lfcr
int 21h
lea si,array
mov ch,0
mov cl,byte ptr[num]
mov ax,0
lp:add ax,word ptr[si]daa ; 十進位制加法調整指令inc si
inc si
loop lp
call dispnum
mov ah,4ch
int 21h
dispnum proc near
; 將要顯示的資料放入al中
mov dl,al ; 將al暫存在dl中and al,0fh ; 取al的低4位mov bl,al ; 非壓縮的bcd碼add bl,30h ; 轉成ascii碼mov al,dl ; 取回al 並經以下4次右移取出al的高4位
shr al,1
shr al,1
shr al,1
shr al,1
mov bh,al ; 非壓縮的bcd碼add bh,30h ; 轉成ascii碼mov ax,bx ; 非壓縮的兩位數的ascii碼存放在ax中
mov byte ptr[y+4],al
mov byte ptr[y+3],ah
mov ah,9
lea dx,y
int 21h
rety db 10,13,0,0,0,'$'
dispnum endp
inputnum proc near
; 輸入的資料以一個空格分隔,以回車符結束輸入lea di,array ;將陣列第一個元素的有效地址置入dimov byte ptr[num],0
stin:
mov ax,0
push ax
again1:
mov ah,1
int 21h
mov byte ptr[char],alcmp al,13
je line0
cmp al,' '
je line0
sub al,30h
mov ah,0
mov si,ax
pop ax
mov cl,10
mov ch,0
mul cx
add ax,si
push ax
jmp again1
line0:
pop ax
mov word ptr[di],ax
inc byte ptr[num]
cmp byte ptr[char],13je stinend
inc di
inc di
jmp stin
stinend:
retarray dw 100 dup(0)num db 0
char db ?
inputnum endp
code ends
end start
2樓:匿名使用者
data segment
buf db 1,2,3,4,5,6,7,8,9,0r dw 0
f db 0dh,0ah,'$'
data ends
code segment
assume cs:code, ds:datastart:
mov ax,data
mov ds, ax
;read 10 8bit number base 10mov cx, 10
mov si, 0
mov ah,1
l1:int 21h
; sub al, 30h
mov buf[si], al
inc si
loop l1
;sum the 10 number
;you can do this at previous loopmov cx, 10
mov si,0
mov ax,0
l2:add al,buf[si]
aaainc si
loop l2
;到這裡,執行完畢之後,ah儲存高位,al存放低位mov r,ax
lea dx, f
mov ah,9
int 21h
mov dl,byte ptr r+1
mov ah,2
add dl,30h
int 21h
mov dl,byte ptr r
add dl,30h
int 21h
mov ah,4ch
int 21h
code ends
end start
用組合語言怎樣實現16進位制轉換為壓縮的bcd碼 10
3樓:修者世界
一個十六進位制數最大255,所以轉換為壓縮bcd碼需要兩個位元組,轉換方法是:
1、第一步,用該數除以100,結果存入高八位位元組的低四位。
2、第二步用餘數除以10,結果存入低八位的高四位。
3、第三遍,將餘數存入低八位的低四位。
例程:h2bcd:
mov b,#100
div ab
mov r2,a
mov a,b
mov b,#10
div ab
swap a,b
anl a,#0f0h
orl a,b
mov r3,aret
用組合語言編寫程式計算5 10
超級花生 dseg segment result dw 存放和 dseg ends cseg segment assume cs cseg,ds dsegstart mov ax,dseg mov ds,ax mov ax,5 從5開始加 mov result,0 和的初值賦0 mov cx,20 ...
如何編寫程式實現從鍵盤輸入一行英文句子,輸入到螢幕上,並將每
有個缺陷,如果是this is a test,則把a也大寫了,不知道這樣是不是符合你的要求。按你的題目講是正確的 如果不符合,則稍加個判斷即可。include include int main for i 0 i a s i 1 z s i 1 s i 1 0x20 printf s n s 編寫一...
求答案 試編寫組合語言程式,要求對鍵盤輸入的小寫字母用大寫字母顯示出來
中原小壞蛋 按回車結束程式 codes segment assume cs codes start a mov ah,01h int 21h cmp al,0dh jz exit sub al,32 mov dl,al mov ah,02 int 21h jmp a exit mov ah,4ch ...