社区
汇编语言
帖子详情
mov ax,0与sub ax,ax的区别?
C001u1u
2010-05-08 12:53:08
mov ax,0与sub ax,ax的区别?
...全文
352
1
打赏
收藏
mov ax,0与sub ax,ax的区别?
mov ax,0与sub ax,ax的区别?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
vsbat
2010-05-08
打赏
举报
回复
机器码:
一个是 3 个字节
一个是 2 个字节
IBM汇编语言答案 完整版
很全的汇编语言答案3.17 写出执行以下计算的指令序列,其中X、Y、Z、R、W均为存放16位带符号数单元的地址。 (1) Z←W+(Z-X) (2) Z←W-(X+6)-(R+9) (3) Z←(W*X)/(Y+6),R←余数 (4) Z←((W-X)/5*Y)*2 答:(1)
MOV
AX
, Z ;以下程序都未考虑带符号数的溢出
SUB
AX
, X ADD
AX
, W
MOV
Z,
AX
(2)
MOV
BX, X ADD BX, 6
MOV
CX, R ADD CR, 9
MOV
AX
, W
SUB
AX
, BX
SUB
AX
, CX
MOV
Z,
AX
(3) ADD Y, 6
MOV
AX
, W IMUL X IDIV Y
MOV
Z,
AX
MOV
R, DX (4)
MOV
AX
, W
SUB
AX
, X CWD
MOV
BX, 5 IDIV BX IMUL Y SHL
AX
, 1 ;((DX),(
AX
))*2 RCL DX, 1
微机原理实验考核模块题目表(汇编语言程序写的很详细)
实验一、顺序结构程序 要求:编写一程序,作BCD数的四则运算,在程序中设置非压缩BCD数X,从键盘输入一位十进制数Y。将X+Y、X-Y、X*Y及X/Y(不考虑余数)分别送ANS_A,ANS_S,ANS_M及ANS_D变量。上机调试程序;检查执行结果。 四则运算程序清单: dseg segment Msg1 db 'input y:','$' ANS_A dw ? ANS_S dw ? ANS_M dw 2 dup (?) ANS_D dw ? x dw 0709H y DW ? dseg ends cseg segment assume cs:cseg,ds:dseg Start:
mov
ax
,dseg
mov
ds,
ax
lea dx,Msg1
mov
ah,9 int 21h
mov
ah,1 int 21h
sub
al,30H
mov
y,
AX
;加
mov
ax
,x add
AX
,y aaa
mov
ANS_A,
ax
;减
mov
ax
,x
sub
AX
,y aas
mov
ANS_S,
ax
;乘
mov
BX,y
mov
al,byte ptr x mul bl aam
mov
dx,
ax
mov
al,byte ptr x+1 mul bl aam add al,dh aaa
mov
byte ptr ANS_M,dl
mov
byte ptr ANS_M+1,al
mov
byte ptr ANS_M+2,ah ;除
mov
bX,y
mov
ax
,x aad div bl
mov
byte ptr ANS_D,al
mov
ah,4ch int 21h cseg ends end start
微机原理课程设计 计算器的源程序
1计算器 DATA SEGMENT STRING DB 'PLEASE PRESS NUMBER 1,2,3,4,5:',0DH,0AH,'$' BUFF DB 10 DB ? DB 10 DUP(?) ARRAY1 DB 'PLEASE INPUT THE FIRST NUMBER:',0DH,0AH,'$' ARRAY2 DB 'PLEASE INPUT THE SECOND NUMBER:',0DH,0AH,'$' ARRAY3 DB 10 DB ? DB 10 DUP(?) ARRAY DW 2 DUP(?) RESULT DB 4 DUP(?),'$' DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:
MOV
AX
,DATA
MOV
DS,
AX
MOV
AH,00H
MOV
AL,06H INT 10H
MOV
DX,OFFSET ARRAY1
MOV
AH,9 INT 21H
MOV
DX,OFFSET BUFF
MOV
AH,0AH INT 21H CALL ABC
MOV
ARRAY,
AX
MOV
DX,OFFSET ARRAY2
MOV
AH,9 INT 21H
MOV
DX,OFFSET BUFF
MOV
AH,0AH INT 21H CALL ABC
MOV
ARRAY+2,
AX
MOV
AH,09H
MOV
DX,OFFSET STRING INT 21H
MOV
DX,OFFSET ARRAY3
MOV
AH,0AH INT 21H
MOV
BX,DX
MOV
AL,[BX+2] CMP AL,'1' JZ A1 CMP AL,'2' JZ A2 CMP AL,'3' JZ A3 CMP AL,'4' JZ A4 CMP AL,'5' JZ A5 A1:
MOV
AX
,ARRAY
MOV
BX,ARRAY+2 ADD AL,BL ADC AH,0 CALL DEF JMP LAST A2:
MOV
AX
,ARRAY
MOV
BX,ARRAY+2 CMP AL,BL JAE K0 JMP K1 K0:
SUB
AL,BL CALL DEF JMP LAST K1:PUSH
AX
MOV
AH,02H
MOV
DL,'-' INT 21H POP
AX
SUB
BL,AL
MOV
AL,BL CALL DEF JMP LAST A3:
MOV
AX
,ARRAY
MOV
BX,ARRAY+2 MUL BL CALL DEF JMP LAST A4:
MOV
AX
,ARRAY
MOV
BX,ARRAY+2 DIV BL
MOV
AH,0 CALL DEF JMP LAST A5:JMP LAST ABC PROC
MOV
CL ,2
MOV
CH,0
MOV
BX,OFFSET BUFF+2 PUSH BX PUSH CX L0:
SUB
[BX],30H INC BX LOOP L0 POP CX POP BX
MOV
AH,0
MOV
AL,0
MOV
SI,10 L1: MUL SI ADD AL,[BX] ADC AH,0 INC BX LOOP L1 RET ABC ENDP DEF PROC
MOV
SI,OFFSET RESULT
SUB
DX,DX
MOV
BX,1000 DIV BX ADD AL,30H
MOV
[SI],AL
MOV
AX
,DX
MOV
BL,100 DIV BL ADD AL,30H
MOV
[SI+1],AL
MOV
AL,AH
SUB
AH,AH
MOV
BL,10 DIV BL ADD AL,30H
MOV
[SI+2],AL ADD AH,30H
MOV
[SI+3],AH
MOV
DX,OFFSET RESULT
MOV
AH,9 INT 21H RET DEF ENDP LAST:
MOV
AH,4CH INT 21H CODE ENDS END START
经典汇编程序实例21例
案例1判断闰年程序 data segment ;定义数据段 infon db 0dh,0ah,'Please input a year: $' Y db 0dh,0ah,'This is a leap year! $' N db 0dh,0ah,'This is not a leap year! $' w dw 0 buf db 8 db ? db 8 dup(?) data ends stack segment stack db 200 dup(0) stack ends code segment assume ds:data,ss:stack,cs:code start:
mov
ax
,data
mov
ds,
ax
lea dx,infon ;在屏幕上显示提示信息
mov
ah,9 int 21h lea dx,buf ;从键盘输入年份字符串
mov
ah,10 int 21h
mov
cl, [buf+1] lea di,buf+2 call datacate call ifyears jc a1 lea dx,n
mov
ah,9 int 21h jmp exit a1: lea dx,y
mov
ah,9 int 21h exit:
mov
ah,4ch int 21h datacate proc near; push cx; dec cx lea si,buf+2 tt1: inc si loop tt1 ;lea si,cx[di] pop cx
mov
dh,30h
mov
bl,10
mov
ax
,1 l1: push
ax
sub
byte ptr [si],dh mul byte ptr [si] add w,
ax
pop
ax
mul bl dec si loop l1 ret datacate endp ifyears proc near push bx push cx push dx
mov
ax
,w
mov
cx,
ax
mov
dx,0
mov
bx,4 div bx cmp dx,0 jnz lab1
mov
ax
,cx
mov
bx,100 div bx cmp dx,0 jnz lab2
mov
ax
,cx
mov
bx,400 div bx cmp dx,0 jz lab2 lab1: clc jmp lab3 lab2: stc lab3: pop dx pop cx pop bx ret ifyears endp code ends end start
微机接口8253 实验(秒表)
data segment freq dw 262,294,330,349,392l,440,494 data ends code segment assume ds:data, cs:code main proc far start: push ds
mov
ax
,0 push
ax
mov
ax
,data
mov
ds,
ax
mov
al,10110110b ;8253定时器2初始化 out 43h, al in al,61h ;读pb口 or al,03h out 61h,al ;pb0, pb1=’1’, 打开声音 again:
mov
ah, 1 ;dos功能调用,键盘输入并回显 int 21h ;按键(键入的ascii码值在al中) cmp al,1bh ; ‘Esc’退出 jz exit lea si, freq and
ax
,0fh ;
ax
中得到按键值1~7。 shl
ax
, 1;双字节
sub
ax
, 2;地址从0000开始 add si,
ax
;si 指向对应的频率值
mov
di, [si]
mov
dx, 12h
mov
ax
, 34f0h
汇编语言
21,458
社区成员
41,603
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章