壓縮bcd碼轉換成ascii碼 壓縮BCD碼轉換成ASCII碼?
壓縮BCD碼轉換成ASCII碼?代碼段假定CS:Code,DS:Code BCD編號DB 45h,32H,56h,98H DW 6 dup(?)開始:push CS pop DS push CS po
壓縮BCD碼轉換成ASCII碼?
代碼段假定CS:Code,DS:Code BCD編號DB 45h,32H,56h,98H DW 6 dup(?)開始:push CS pop DS push CS pop es使數據段、附加段和代碼段成為同一段CLD、Lea Si、BCD編號Lea di、BCD編號[8]mov CX、2 Rep movsw將這四個字節(jié)的壓縮BCD代碼保存到后續(xù)單元Lea Si,BCD 8字節(jié)之外的字節(jié)數u8]lea di,BCD unumber mov cx,4 BCD uascii:lodsb push cx mov cx,4 xor ah,ah shl ax,cl shr al,cl or ax,3030h xchg ah,al stosw pop cx loop BCD uascii Exit upro:mov ah,4CH end program int 21h code ends end start
將未壓縮的BCD代碼轉換為ASCII代碼,只要加30h20h單元轉換成ASCII碼放入50hmov a,haddca 20hmov 50h,A21H單元轉換成ASCII碼放入51hmov a,haddca 21hmov 51h,a可以用10個周期來編碼
用查表法將十六進制數轉換成ascⅡ代碼:程序流程圖:分析:也可以用計算法來實現,但比較復雜。如果我們用查表法來解決這個問題,整個程序就會簡單易懂。將0-F對應的ASCⅡ碼從地址開始依次放入單元中,通過設置地址指針和索引指針來實現。程序和流程圖如下:(R)ORG 0400h,rmov dptr,#0600h;設置地址指針,rmov a,R0;將轉換值取為a,ranl a,#0Fh;屏蔽高位4位以獲得地址更改地址,rmovc a,@a dptr;查表,rmov 20h,a;保存結果,rsjmp$ org 0600h,RDB 30h,31h,32H,33H,34h,RDB 35h,36h,37h,38h,39H;RDB 41h,42h,43h,44h,45h,46h
一個字節(jié)的BCD碼就是用一個字節(jié)的二進制數來表示兩個十進制數。例如,用壓縮BCD碼表示的十進制數96是96h,而轉換成ASCII碼是將壓縮BCD碼表示的十進制數的高位和低位分開,用ASCII碼表示,即轉換成39H和36h,匯編語言是面向機器的編程語言。在匯編語言中,用memoni代替操作碼,用符號或標簽代替地址碼。這樣,機器語言的二進制代碼就被符號所取代,機器語言就變成了匯編語言。所以匯編語言也被稱為符號語言。用匯編語言編寫的程序不能被機器直接識別。程序是用來把匯編語言翻譯成機器語言的。這種翻譯程序稱為匯編程序。匯編程序是系統(tǒng)軟件中的語言處理系統(tǒng)軟件。匯編程序將匯編語言翻譯成機器語言的過程稱為匯編。我國著名計算機教育家王爽寫了一本名為《匯編語言》的書。