1樓:楊_劉
出現的主要問題是向十進位制的轉換,如二進位制1010,在螢幕上並不顯示10,而要你轉換成十進位制後才顯示
基於你寫的程式思路比較亂,這是我寫的,能顯示數字最大數為65535data segment
str1 db 'input string,the end flag is $'
str2 db 'the number of figures:$'
data ends
code segment
main proc far
assume cs:code,ds:datastart:
mov ax,data
mov ds,ax
mov dx,offset str1;顯示str1mov ah,09h
int 21h
call crlf;呼叫回車換行子程式
mov bx,0;計數器
p1: mov ah,01h;迴圈接收直到$顯示數字個數並返回dos
int 21h
cmp al,'$'
je p2
cmp al,'0'
jl p1
cmp al,'9'
ja p1
inc bx;是數字計數器加1
jmp p1
p2: call crlf
mov dx,offset str2;顯示str2mov ah,09h
int 21h
call crlf
call bini;呼叫向十進位制轉換的子程式mov ah,4ch
int 21h
retmain endp
bini proc near;轉換為十進位制的子程式mov cx,10000d
call bin
mov cx,1000d
call bin
mov cx,100d
call bin
mov cx,10d
call bin
mov cx,1d
call bin
retbini endp
bin proc near
mov ax,bx
mov dx,0
div cx
mov bx,dx
mov dl,al
add dl,30h
mov ah,02h
int 21h
retbin endp
crlf proc near;回車換行子程式mov dl,0ah
mov ah,02h
int 21h
mov dl,0dh
mov ah,02h
int 21h
retcrlf endp
code ends
end start
2樓:王亮博
你寫的程式讓人看了 頭疼·
關於彙編程式問題,關於彙編裡子程式的問題
用組合語言程式設計如下 code segment assume cs code a dw 1357h 隨意定義兩個資料.b dw 2468h start mov ax,codemov ds,ax mov ax,a 開始處理.test ax,1 jnz a odd 為奇數轉移.mov bx,b tes...
求平均值的彙編程式
assume cs zxc,ds qweqwe segment org 0500h db 10h,20h,30h,40h,50h,60horg 0510h db qwe ends zxc segment bg mov ax,qwe mov ds,ax mov ax,0 mov si,0500h mo...
大家看看這段彙編程式那裡出錯了,快幫我看看這段彙編程式碼錯在哪裡
什麼會提示dao符號錯誤?說明 專我們寫錯了,導致屬編譯器以為它是符號.應該寫成 0b800h.其實仔細看看就好了,想學彙編就必須要細心再細心.彙編的語法最簡單,但是想要用來程式設計卻顯得結構非常複雜.除錯彙編 找錯有很多技巧的,比如 常用的 int 3 中斷.十六進位制數前面是字母的一定要加0 改...