怎樣用組合語言把不大於10000的數值轉換為

時間 2021-12-25 08:55:44

1樓:匿名使用者

除錯通過!

datas segment

s db 0,0,0,0,'$'

datas ends

stacks segment

;此處輸入堆疊段**

stacks ends

codes segment

assume cs:codes,ds:datas,ss:stacksstart:

mov ax,datas

mov ds,ax

mov si,0

lea si,s

add si,3

mov ax,9990

call dis ;顯示ax裡的值mov ah,0 ;等待輸入int 16h

mov ah,4ch

int 21h

dis:

mov cx,4

s1:xor dx,dx

mov bx,10

div bx

add dl,30h

mov [si],dl

dec si

loop s1

inc si

mov dx,si

mov ah,9

int 21h

retcodes ends

end start

2樓:做而論道

數字 0~127,就是一個 ascii 碼。

65,就是 a 的 ascii 碼;

66,就是 b 的 ascii 碼;

……650,可以轉換成 10 個 a。……

組合語言中字元怎樣轉換成ascii值

3樓:永恆

code  segment

assume    cs:code

org       100h

start:  jmp       beginchar1  db        ?

asc  db        13,10

asc2  db        3 dup(?)db        13,10,'$'

begin:  push      cs

pop       ds

push      cs

pop       es

mov       ah,1

int       21h

mov       byte ptr char1,almov       cx,3

lea       si,asc2

add       si,2

@1:mov       ah,0

mov       bl,10

div       bl

add       ah,30h

mov       [si],ah

dec       si

loop      @1

lea       dx,asc

mov       ah,9

int       21h

mov       ah,4ch

int       21h

code  ends

end       start

彙編程式設計:怎麼把字串轉換成ascii碼值?

4樓:匿名使用者

我自己簡單編了一個。。。 下面的程式是16位彙編,以十進位制數89158為例,編譯通過,執行正確。

; program name: dec_ascii.asm

dec_ascii segment

assume cs:dec_ascii,ds:dec_ascii

org 100h

start: jmp begin

ascii db 5 dup(' ') ;儲存十進位制無符號數的ascii

ascii_end db '$' ;字串結束標誌

decimal dw 89158 ; 十進位制無符號數,最大65535。

begin: lea di,ascii_end ; 字串尾地址

dec di

mov bx,10 ; 用於除10,取商數和餘數

std ;設定變址暫存器變址方向

mov ax,decimal ; 取十進位制無符號數

ascii_ctr: xor dx,dx

div bx ; 除10,取商數和餘數

xchg ax,dx ;交換商數和餘數

or al,30h ;轉換成ascii碼

stosb ;儲存ascii碼

mov ax,dx ;把商數放入ax中

cmp ax,0

ja ascii_ctr ;商數大於0,繼續取餘數

lea dx,ascii ;字串首地址

mov ah,9 ; 顯示結果

int 21h

exit_proc: mov ax,4c00h ;結束程式

int 21h

dec_ascii ends

end start

用組合語言,將一個數字的ascii碼值顯示出來

5樓:

對於第1個字元,call htoasc 之後al裡面應該是30h(這時候是對的,『0』的ascii碼正是30h),然後又執行rol al,4,al變成03h了(結果已經錯)。

03h不是一個可顯示字元,call dispc顯示的結果當然不對,你應該把call htoasc 之後的rol al,4這行刪掉。

其實**裡面顯示低位的時候就沒有rol al,4

在j**a中如何將字元轉換成ascii碼?

6樓:匿名使用者

直接轉換成int型輸出就行了

7樓:路上飛小飛飛

package com.test;

public class testascii {public static void main(string args) {

string str = "很多的的技術

酷開電專視

8樓:匿名使用者

string a="5645646456";

int b= new int[a.length()];

for(int i=0;i遍歷字串

char c= a.charat(i);

b[i]=c-48;

}//b便是你要轉化

專的屬int 陣列

9樓:

char a = 'a';

int ascii = (int) a;

組合語言mul是啥意思 如何用,組合語言MUL是啥意思 如何用???

結果放在a裡面 這個說法是不對的,應該說結果的高8位放在b裡,低8位放在a裡,因為8位 8位結果有可能很大,8位數一般成不下,2 1,一個位元組能成下 所以b 0,a 2 這是湊巧了。是乘法指令,用法如 mov a,01 mov b,02 mul ab 就是累加器a與累加器b相乘,結果放在a裡面,按...

用組合語言編寫程式計算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 ...

利用組合語言寫出高效的3x 1程式

愛因景潤 unsigned long d asm 這個程式我除錯過了,只要運算過程中不出現越界就沒問題。變數d你定義到資料段中就行了。另外我還除錯了一下你給的 好像無論怎樣都jmp start6,根本跳不出來耶。還有據我理解,你的 是往前看好幾步,然後2個4個的往上加,我不知道你為什麼採用這種演算法...