下面是給出的初始**
assume cs:codesg,ss:stacksg,ds:datasg
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
datasg segment
db '1. display ' ;這裡是4*16個位元組
db '2. brows '
db '3. replace '
db '4. modify '
datasg ends
codesg segmnet
start:
codesg ends
end start
下面進行分析:如**所示 首字母是從左往右數第4個位置,由於程式編號是從0開始的,所以首字母的編號是3
0 1 2 3 4 5 6 7 8 9 a b c d e f 1
.dis
play
2.br
ows3
.rep
lace
4.mo
dify
然後考慮 小寫字母怎麼轉換成大寫字母 ,這裡運用 and 指令 由於小寫字母和大寫字母在ascll碼上相差32d(十進位制)
列如 小寫 a 的ascll碼是97 而大寫的a是65 二進位制 兩者差 00100000b
由於我們是把小寫變成大寫 所以是 and al,11011111b
我們用兩層迴圈解決 內層解決一行中4個字母,外層解決向下迴圈4行。
mov ax,datasg
mov ds,ax
mov ax,stacksg
mov ss,ax
mov sp,16
mov bx,0
mov cx,4
mov si,3
s1:push cx
mov cx,4
s: mov al,[bx+si]
and al,11011111b
mov [bx+si],al
inc si
loop s
mov si,3
add bx,16
pop cx
loop s1
mov ax,4c00h
int 21h
執行**檢視執行後的資料段
成功到達預期設想。
王爽彙編 第三版 第13章實驗13
1 編寫並安裝 int7ch 中段例程,功能為顯示乙個用0結束的字串,中斷例程安裝在0 200處。如下 assume cs code data segment db welcome to masm 0 data ends code segment start mov ax,0 mov es,ax m...
王爽彙編第三版 實驗七
assume cs code,ds data,es table data segment db 1975 1976 1977 1978 1979 1980 1981 1982 1983 db 1984 1985 1986 1987 1988 1989 1990 1991 1992 db 1993 1...
王爽 組合語言第三版實驗7
這個題目做了很久,使用了2中方法做出了結果,不過目前在單步除錯時還有點疑問。題目 power idea公司從1975成立一直到1995年的基本情況被定義到了datasg中,程式設計將datasg段中的資料寫入到table段中,並計算21年中的人均收入 取整 結果儲存到table段中 兩種方法我都使用...