1、内存有一个字节变量VAL中存放着小写字符’a’,请将该字符转换为大写字符并在屏幕中显示出来。
(由于我写的太好了,可以自定义输入输出,按照提示符输入输出即可)
源代码:
DATA SEGMENT
VAL DB 'a'
ANS DB ?
CHARS DB 'The result is:$';提示语
CRLF DB 0dh,0ah,'$';回车
DATA ENDS
STACK SEGMENT
;
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START:
MOV AX,DATA
MOV DS,AX;装载ds数据段内容
OUTPUTCHARS:
mov dx,offset CHARS
mov ah,09h
int 21h
xor dx,dx;清零
mov dl,val;存入val的值
sub dl,20h;ascii的值减去32即为对应的大写字母
mov ANS,dl;将值存入ANS中
mov ah,02h
int 21h
mov dx,offset crlf;输出回车,结果更明显
mov ah,09h
int 21h
STOP:
mov ah,4CH
int 21h
CODE ENDS
END START
执行结果的贴图:
Debug调试的源数据:
2、设存储单元A和B各有一带符号字节数,比较大小和正负,要求将较大数送RES1单元;如果有负数,将一个负数送RES2,否则RES2送-1。
(由于我写的太好了,可以自定义输入输出,按照提示符输入输出即可)
源代码:
DATA SEGMENT
A DB -1
B DB 2
RES1 DB ?
RES2 DB ?
CHARS1 DB 'RES1:$'
CHARS2 DB 13,10,'RES2:$'
CRLF DB 13,10,'$'
DATA ENDS
STACK SEGMENT
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START:
mov ax,DATA
mov ds,ax
mov al,A
mov bl,B
cmp al,bl
JG R1
MOV RES1,bl
jmp R2
R1:
MOV RES1,al
R2:
mov RES2,al
cmp B,0
jl R3
jmp EXIT
R3:
mov RES2,bl
EXIT:
MOV AH,4CH
int 21h
CODE ENDS
END START