導航:首頁 > 軟體知識 > 如何寫一個以位元組形式的程序

如何寫一個以位元組形式的程序

發布時間:2023-01-22 16:48:38

1. 編寫C程序調用匯編語言,實現將1K大小的內存塊以位元組形式復制的另一內存地址

#include<stdio.h>
#define NUM 1024
int main()
{
char strFrom[NUM] = { "good good study, day day up." };
char strTo[NUM];
__asm
{
mov ecx, NUM;
lea esi, strFrom;
lea edi, strTo;
rep movsb;
}
printf("%s\n", strTo);
}

在VC里運行成功。不要用dev-c++,因為dev-c++用的是AT&T的語法。

2. 用匯編語言編寫一個多位元組壓縮BCD加法程序。要求顯示被加數、加數及結果。

只顯示結果,加數、被加數的顯示你自己琢磨吧!


CODESEGMENT
ASSUMECS:CODE

XDB12H,34H,56H
YDB65H,98H,98H
NEQU$-Y
ZDBN+1DUP(0)

START:PUSHCS
POPDS
PUSHCS
POPES;使數據段、附加段與代碼在同一段中
MOVCX,N;位元組數置入cx
MOVBX,0;基址寄存器置0
CLC;清進位借位標志
@0:
MOVAL,X[BX];將被加數的低位元組移入al
ADCAL,Y[BX];帶進未的加,加加數的低位元組
DAA
MOVZ[BX],AL;將結果移入和的低位元組
INCBX;基址寄存器加1
LOOP@0;循環

MOVBYTEPTRZ[BX],0;處理最高位
JNC@01
MOVBYTEPTRZ[BX],1
@01:
LEASI,Z;將和的首地址置入si
MOVCX,N+1;位元組數置入cx
CLD
@1:
LODSB;裝入和的低位元組到al
CALLDSPAL;調用子程序以16進制形式顯示(其實是顯示bcd數)
LOOP@1;循環

MOVAH,4CH
INT21H

;=============================
DSPALPROCNEAR
PUSHAX
PUSHBX
PUSHCX
PUSHDX
PUSHF
MOVCX,2;一個位元組只有2位的16進制數
MOVBX,AX;將al保存到bl中
@DSPAL1:
RORBL,1;循環將bl右移4次,即將高位移到右側
RORBL,1
RORBL,1
RORBL,1
MOVDL,BL;放到dl中
ANDDL,0FH;清掉高位
CMPDL,9;和9比較
JA@DSPAL2;大於即在A~F之間
ADDDL,30H;否則就是0~9,加30H變為ASCii碼
JMP@DSPAL3
@DSPAL2:
ADDDL,37H;加37H變為A~F的ASCii碼
@DSPAL3:
MOVAH,2
INT21H
LOOP@DSPAL1;循環輸出低位
MOVAH,2
MOVDL,'H';顯示H
INT21H
MOVDL,32;顯示空格
INT21H
POPF
POPDX
POPCX
POPBX
POPAX
RET
DSPALENDP

CODEENDS
ENDSTART

3. 編寫一個程序顯示你所使用的計算機中的各種數據類型的位元組數。

如果你要知道一個int型的位元組數可以這樣寫:
#include<stdio.h>
void main()
{
int x;
x=sizeof(int);
printf("%d",x);
}
其他的同上。

閱讀全文

與如何寫一個以位元組形式的程序相關的資料

熱點內容
食品代理批發一個月能賺多少錢 瀏覽:122
代理生意利潤怎麼樣 瀏覽:796
暖房小程序審核要多久 瀏覽:870
徐菜市場在哪裡 瀏覽:911
怎麼做康師傅喝開水代理商 瀏覽:916
為什麼安卓市場屢次停止運行 瀏覽:707
智慧家庭產品怎麼買 瀏覽:8
下塘農貿市場在哪裡 瀏覽:182
成功的交易系統應具備哪些要素 瀏覽:335
永泰有什麼農產品 瀏覽:112
sqlite如何打開資料庫 瀏覽:293
英雄聯盟的登陸程序是哪個 瀏覽:536
廣州外貿服裝批發市場在哪裡 瀏覽:351
手機信息裡面的字如何調大細 瀏覽:722
舜天華為代理怎麼樣 瀏覽:979
支付平台代理怎麼做 瀏覽:292
淘寶上做虛擬產品怎麼發貨 瀏覽:755
mvp方法產品的需求來源有哪些 瀏覽:657
成都電力技術學院怎麼去讀 瀏覽:416
股市交易怎麼查詢歷史 瀏覽:620